给网站添加ssl证书怎么操作?ssl证书免费申请教程
- 虚拟主机
- 2026-06-13
- 7
在HTTPS成为互联网安全标准的今天,为网站部署SSL证书不仅是提升用户信任度的关键步骤,也是搜索引擎优化(SEO)的重要加分项,以下将详细阐述从证书获取到最终生效的全过程。
选择并获取SSL证书
你需要确定适合你网站的证书类型,目前主流的选择包括:
- DV(域名验证)证书:仅验证域名所有权,颁发速度快,适合个人博客或小型网站。
- OV(组织验证)证书:验证域名及申请组织身份,适合企业官网。
- EV(扩展验证)证书:验证最严格,浏览器地址栏显示绿色企业名称,适合金融、电商等高信任需求场景。
获取途径主要有两种:
- 免费证书:如Let’s Encrypt,支持自动化续期,适合技术能力较强的用户。
- 付费证书:如DigiCert、Comodo、Symantec等,提供更高的保修额度和技术支持。
生成CSR文件
在获取证书之前,需要在服务器端生成证书签名请求(CSR),CSR包含你的公钥和身份信息,不同服务器软件的操作略有不同:
| 服务器类型 | 操作简述 | 备注 |
|---|---|---|
| Nginx | 使用 openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr
命令生成
| 需保留好生成的 .key 私钥文件 |
| Apache | 通过控制面板(如cPanel)或openssl命令生成 | 部分面板可直接在线生成CSR |
| IIS | 在IIS管理器中通过“服务器证书”向导生成 | 界面化操作,较为直观 |
生成CSR后,你会得到一个文本格式的CSR文件,将其内容复制并提交给证书颁发机构(CA)。
域名验证
提交CSR后,CA机构会要求你证明拥有该域名,常见的验证方式有:
- DNS验证:在域名的DNS解析记录中添加一条特定的TXT记录,这是最推荐的方式,稳定且不影响网站访问。
- 文件验证:将CA提供的验证文件上传到网站根目录下的特定路径(如 .well-known/pki-validation/)。
- 邮箱验证:接收发送至域名管理员邮箱(如 admin@yourdomain.com)的验证链接。
完成验证后,CA机构将签发证书文件,通常包含 .crt 或 .pem 格式的公钥证书。
安装SSL证书
将证书文件上传至服务器并进行配置,以下是两种主流服务器的配置示例:
Nginx 配置示例:

Apache 配置示例:
<VirtualHost :443> ServerName yourdomain.com SSLEngine on SSLCertificateFile /path/to/your/certificate.crt SSLCertificateKeyFile /path/to/your/private.key SSLCertificateChainFile /path/to/your/chain.crt </VirtualHost>
配置完成后,务必重启Web服务以使更改生效。
强制HTTPS跳转
为了确保所有用户都通过安全连接访问,需要将HTTP请求自动重定向到HTTPS。
Nginx 重定向配置:

server { listen 80; server_name yourdomain.com; return 301 https://$server_name$request_uri; }
Apache 重定向配置(在 .htaccess 文件中):
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
检查与测试
部署完成后,使用在线工具(如SSL Labs的SSL Test)或浏览器开发者工具检查证书是否正确安装,确保:
- 证书链完整,无中间证书缺失。
- 没有混合内容警告(即页面中仍包含HTTP资源)。
- 证书有效期正确,且未过期。
相关问题与解答
Q1: 免费SSL证书(如Let’s Encrypt)的有效期通常较短,如何避免频繁手动续期?
A: Let’s Encrypt证书有效期为90天,但可以通过自动化工具实现无缝续期,最常用的是 Certbot,在Linux服务器上安装Certbot后,可以配置定时任务(Cron Job)自动检测证书有效期并在过期前自动续期,在Crontab中添加 0 0 1 certbot renew --quiet 即可每月自动尝试续期,对于Nginx或Apache,Certbot通常能自动重载服务配置,无需人工干预。
Q2: 部署SSL后,网站访问速度变慢,该如何优化?
A: SSL握手过程确实会增加额外的计算开销,但可以通过以下措施优化:
- 启用TLS 1.3:相比TLS 1.2,TLS 1.3减少了握手往返次数,显著提升连接速度。
- 配置会话复用(Session Resumption):通过 ssl_session_cache 和 ssl_session_timeout 参数,让客户端复用之前的会话参数,避免每次请求都进行完整握手。
- 使用HTTP/2:HTTP/2多路复用特性可以并行处理多个请求,有效抵消SSL带来的延迟。
- 硬件加速:如果流量较大,考虑使用支持SSL加速的硬件或云服务(如CDN),将SSL卸载在边缘节点处理,减轻源站压力。
