https证书申请

介绍

安全的超文本传输协议,HTTP+SSL/TLS实现,数据加密传输

  • 对称加密:加密与解密是同一个密钥,优点是性能高,缺点是容易丢失密钥;

  • 非对称加密:先创建密钥对(公钥+私钥),使用公钥加密,使用私钥解密;优点:安全性更高,缺点:性能差,速度慢;

  • 混合加密:浏览器访问服务端,服务端发送CA证书给浏览器,CA证书(服务端基本信息+公钥),公钥加密浏览器密钥(随机生成的密钥),发送给服务端;服务端通过对称加密数据发送给浏览器;

申请 HTTPS 证书(SSL证书)通常有多种途径,具体取决于你的业务需求(如个人博客、企业官网或测试环境)。以下是几种主流的申请方案及核心流程:

1. 免费自动化方案(推荐个人及测试环境)

对于个人网站或测试环境,最快捷的方案是使用 Let’s Encrypt 配合 Certbot 工具。它提供免费的 DV(域名验证)证书,有效期通常为 90 天,但支持自动续期,非常省心。

  • 操作方式:在服务器上安装 Certbot 后,只需执行类似 sudo certbot --nginx -d yourdomain.com 的命令,工具会自动完成证书申请、配置并设置定时续期任务。

2. 云服务商免费额度(适合国内用户)

国内云服务商(如阿里云)通常为每个账号提供一定额度的免费个人测试证书(DV单域名证书),有效期一般为 90 天。

  • 操作方式:登录云控制台,进入“数字证书管理服务”,领取免费额度并创建证书。验证方式可选择“自动 DNS 验证”(若域名也在该平台)或“手动 DNS 验证”(添加 TXT 记录),验证通过后即可下载对应服务器格式(如 Nginx 的 .pem 和 .key 文件)的证书。

3. 企业级商业证书(适合企业官网及高安全需求)

如果业务涉及金融、电商等需要增强用户信任的场景,建议申请 OV(组织验证)或 EV(扩展验证)证书。

  • 操作方式:向 GlobalSign、DigiCert 等 CA 机构提交申请。除了域名所有权验证外,还需提交企业营业执照、法人信息等,CA 机构会进行电话或邮件的二次人工核实,签发周期通常在 1-3 个工作日。

4. 第三方便捷申请服务

市面上也有如 Easy HTTPs 等第三方平台提供引导式的证书申请服务。它们同样基于 Let’s Encrypt 生成免费 DV 证书,但通过浏览器引导式操作降低了技术门槛,并提供到期提醒及自动更新部署的增值服务。

通用申请核心步骤总结:

无论选择哪种方案,核心流程都包含:生成证书签名请求(CSR)或填写域名信息 -> 完成域名所有权验证(DNS解析、文件上传或自动验证) -> 等待 CA 机构签发 -> 下载证书文件(包含证书文件和私钥文件)并部署到服务器。

SSL配置

 server {
     listen 443 ssl http2;
     server_name www.example.com;
 ​
     # 证书文件
     ssl_certificate     /etc/nginx/ssl/example.com.pem;
     ssl_certificate_key /etc/nginx/ssl/example.com.key;
 ​
     # 安全协议
     ssl_protocols TLSv1.2 TLSv1.3;
     ssl_ciphers HIGH:!aNULL:!MD5;
     ssl_prefer_server_ciphers on;
 ​
     # 会话缓存
     ssl_session_cache shared:SSL:10m;
     ssl_session_timeout 10m;
 ​
     root /var/www/example;
 }

HTTP强制跳转HTTPS

 server {
     listen 80;
     server_name www.example.com example.com;
     return 301 https://$server_name$request_uri;
 }
 ​
 # 或通用跳转
 server {
     listen 80 default_server;
     server_name _;
     return 301 https://$host$request_uri;
 }

自签名证书(测试环境)

 # 生成私钥
 openssl genrsa -out example.key 2048
 ​
 # 生成证书签名请求
 openssl req -new -key example.key -out example.csr
 ​
 # 生成自签名证书
 openssl x509 -req -days 365 -in example.csr \
     -signkey example.key -out example.crt

HTTPS性能优化

 server {
     listen 443 ssl http2;
 ​
     # 开启 HTTP/2(大幅提升并发性能)
     # http2 模块在编译时需要 --with-http_v2_module
 ​
     # SSL 会话复用
     ssl_session_cache shared:SSL:50m;
     ssl_session_timeout 1d;
     ssl_session_tickets on;
 ​
     # OCSP Stapling(加快证书验证)
     ssl_stapling on;
     ssl_stapling_verify on;
     resolver 8.8.8.8 114.114.114.114;
 }