HTTPS 已成为网站标配。Google Chrome 会将 HTTP 网站标记为「不安全」,百度/Google 搜索排名也优先展示 HTTPS 网站。本文详细介绍 SSL 证书申请和配置的完整流程。
一、SSL证书类型解析
SSL证书按验证级别分为三类:
| 类型 | 验证方式 | 颁发时间 | 适用场景 | 价格 |
|---|---|---|---|---|
| DV(域名验证) | 验证域名所有权 | 几分钟 | 个人博客/小站 | 免费-$50/年 |
| OV(组织验证) | 验证企业身份 | 1-3天 | 企业官网 | $100-$500/年 |
| EV(扩展验证) | 严格企业验证 | 3-7天 | 金融/电商 | $500+/年 |
推荐:个人站长和小型企业站直接使用免费 DV 证书(Let's Encrypt)即可。
二、Let's Encrypt 免费SSL证书申请
Let's Encrypt 是全球最大的免费 SSL 证书颁发机构,证书有效期90天,支持自动续期。
2.1 宝塔面板一键申请(最简单)
- 宝塔面板 → 网站 → 找到你的站点 → 设置
- 点击「SSL」选项卡
- 选择「Let's Encrypt」
- 勾选域名,填写邮箱
- 点击「申请」按钮
- 申请成功后,开启「强制HTTPS」
宝塔会自动设置每 60 天续期,无需手动操作。
2.2 使用 Certbot 命令行申请
如果服务器没有宝塔面板,可以用 Certbot 工具:
# 安装 Certbot(Ubuntu/Debian)
apt install certbot python3-certbot-nginx -y
# 申请证书(Nginx)
certbot --nginx -d yourdomain.com -d www.yourdomain.com
# 申请证书(Apache)
certbot --apache -d yourdomain.com -d www.yourdomain.com
按提示输入邮箱,同意条款,证书会自动安装并配置。
2.3 手动 DNS 验证申请
如果服务器 80 端口无法访问(如内网服务器),可以用 DNS 验证:
certbot certonly --manual --preferred-challenges dns -d yourdomain.com
按提示在 DNS 添加一条 TXT 记录,验证通过后证书会保存在 /etc/letsencrypt/live/yourdomain.com/
三、Nginx 手动配置 SSL
如果证书文件已准备好,手动配置 Nginx:
server {
listen 443 ssl http2;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
# SSL 优化配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
# HSTS
add_header Strict-Transport-Security "max-age=31536000" always;
root /www/wwwroot/yourdomain.com;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
}
强制 HTTPS 跳转
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}
四、Apache 手动配置 SSL
<VirtualHost *:443>
ServerName yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/privkey.pem
SSLCertificateChainFile /path/to/chain.pem
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
强制 HTTPS(.htaccess)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
五、Cloudflare 灵活SSL(适合无服务器权限)
如果无法修改服务器配置,可以使用 Cloudflare 的「灵活 SSL」:
- 将域名 DNS 托管到 Cloudflare
- SSL/TLS → 加密模式 → 选择「灵活」
- 开启「始终使用 HTTPS」
这样用户到 Cloudflare 走 HTTPS,Cloudflare 到源站走 HTTP。
⚠️ 缺点:源站到 Cloudflare 之间未加密,安全性较低,仅适合临时方案。
六、SSL证书续期
6.1 Certbot 自动续期测试
# 测试续期(不实际续期)
certbot renew --dry-run
# 手动续期
certbot renew
Certbot 安装后会自动添加定时任务,通常每天检查两次。
6.2 宝塔面板续期
宝塔面板申请的 Let's Encrypt 证书会自动续期。如需手动续期:网站设置 → SSL → Let's Encrypt → 点击「续签」。
七、常见问题排查
Q:证书申请失败怎么办?
- 检查 80 端口是否放行
- 确认域名已正确解析到服务器 IP
- 检查 Nginx/Apache 配置是否正确
Q:浏览器提示证书不安全?
- 检查证书链是否完整(fullchain.pem 包含中间证书)
- 确认域名与证书域名一致
- 检查系统时间是否正确
Q:混合内容警告?
- 检查页面中是否有 http:// 资源引用
- WordPress 后台设置 → 常规 → WordPress地址和站点地址都改为 https://
- 使用「Better Search Replace」插件批量替换数据库中的 http:// 为 https://
Q:移动端访问慢?
- 考虑启用 HTTP/2 或 HTTP/3(QUIC)
- 检查证书是否使用了 ECC 算法(速度更快)
八、SSL配置检测工具
- SSL Labs SSL Test(最权威)
- MySSL(国内)
- Catchpoint SSL Check
目标评分:SSL Labs A 或 A+
总结
SSL证书配置总结:
- 个人站:Let's Encrypt 免费 DV 证书 + 宝塔一键申请
- 企业站:OV证书或付费 DV 证书
- 配置后开启强制 HTTPS + HSTS
- 定期检查证书到期时间
有问题欢迎评论区留言。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)