网站 SSL 证书配置 是通过选择合适的 SSL 证书类型、申请证书、配置服务器、设置 HTTPS 重定向、优化 SSL 安全,实现网站加密传输、提升用户信任、满足 SEO 要求的安全配置方法。
为什么需要 SSL?
安全价值
数据加密:
✅ 传输加密
✅ 防止窃听
✅ 防止篡改
✅ 保护隐私
用户信任:
✅ 浏览器绿锁
✅ 显示公司名 (EV)
✅ 提升信任度
✅ 减少跳出
SEO 价值
排名因素:
✅ Google 排名因素
✅ 百度排名因素
✅ HTTPS 优先索引
✅ 浏览器不警告
数据证明:
- HTTPS 网站排名提升 1-2 位
- 用户信任度提升 30%
- 转化率提升 10-20%
SSL 证书类型
验证级别 ⭐⭐⭐⭐⭐
DV(域名验证):
验证内容:
- 域名所有权
- 邮箱验证
- DNS 验证
特点:
- 申请快(几分钟)
- 价格便宜(免费 -200 元)
- 适合个人/小网站
颁发机构:
- Let's Encrypt(免费)
- 阿里云(免费/付费)
- 腾讯云(免费/付费)
OV(组织验证):
验证内容:
- 域名所有权
- 企业营业执照
- 电话核实
特点:
- 申请较慢(1-3 天)
- 价格中等(500-1500 元/年)
- 显示公司信息
- 适合企业网站
EV(扩展验证):
验证内容:
- 域名所有权
- 企业详细资料
- 法人身份
- 电话核实
特点:
- 申请慢(3-7 天)
- 价格高(2000-5000 元/年)
- 绿色地址栏
- 显示公司名
- 适合电商/金融
域名数量 ⭐⭐⭐⭐
单域名证书:
保护范围:
- 一个域名
- www 和非 www
适合:
- 单网站
- 预算有限
多域名证书:
保护范围:
- 多个域名(2-100 个)
- 不同域名
适合:
- 多网站
- 企业多品牌
通配符证书:
保护范围:
- 一个域名 + 所有子域名
- *.example.com
适合:
- 多子域名
- 业务发展快
证书申请
Let's Encrypt 免费证书 ⭐⭐⭐⭐⭐
Certbot 申请:
# 安装 Certbot
apt-get install certbot python3-certbot-nginx
# 申请证书
certbot --nginx -d example.com -d www.example.com
# 自动续期
certbot renew --dry-run
# 设置自动续期(cron)
0 3 * * * certbot renew --quiet
DNS 验证:
# DNS 验证(适合通配符)
certbot certonly --dns-aliyun -d *.example.com
# 需要配置 DNS API
阿里云证书 ⭐⭐⭐⭐⭐
免费证书申请:
1. 登录阿里云控制台
2. 产品与服务 → SSL 证书
3. 免费证书 → 购买(免费)
4. 填写域名
5. 验证域名
- 文件验证
- DNS 验证
- 邮箱验证
6. 下载证书
付费证书申请:
1. 选择证书类型
- DV、OV、EV
- 单域名、多域名、通配符
2. 填写信息
- 域名
- 企业信息(OV/EV)
3. 验证
- 域名验证
- 企业验证(OV/EV)
4. 下载证书
- Nginx
- Apache
- IIS
- 其他
服务器配置
Nginx 配置 ⭐⭐⭐⭐⭐
基础配置:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com www.example.com;
# SSL 证书
ssl_certificate /etc/ssl/certs/example.com.crt;
ssl_certificate_key /etc/ssl/private/example.com.key;
# SSL 优化
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;
# HSTS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# 其他配置
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
验证配置:
# 测试配置
nginx -t
# 重载配置
nginx -s reload
# 检查 SSL
openssl s_client -connect example.com:443
Apache 配置 ⭐⭐⭐⭐
基础配置:
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com/
ServerName example.com
ServerAlias www.example.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/example.com.crt
SSLCertificateKeyFile /etc/ssl/private/example.com.key
SSLCertificateChainFile /etc/ssl/certs/chain.crt
# SSL 优化
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite HIGH:!aNULL:!MD5
SSLHonorCipherOrder on
# HSTS
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
# 其他配置
DocumentRoot /var/www/html
宝塔面板配置 ⭐⭐⭐⭐⭐
一键配置:
1. 登录宝塔面板
2. 网站 → 设置 → SSL
3. Let's Encrypt
4. 填写域名
5. 申请
6. 强制 HTTPS
7. 保存
自有证书:
1. 网站 → 设置 → SSL
2. 其他证书
3. 粘贴证书内容
4. 粘贴私钥内容
5. 保存
6. 强制 HTTPS
HTTPS 优化
强制 HTTPS ⭐⭐⭐⭐⭐
Nginx 重定向:
# HTTP 重定向到 HTTPS
server {
listen 80;
server_name example.com;
return 301 https://$server_name$request_uri;
}
Apache 重定向:
# .htaccess
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
代码重定向:
// PHP
if ($_SERVER['HTTPS'] != 'on') {
header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
exit;
}
// Node.js
app.use((req, res, next) => {
if (!req.secure) {
return res.redirect('https://' + req.headers.host + req.url);
}
next();
});
HSTS 配置 ⭐⭐⭐⭐⭐
HSTS 头:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
参数说明:
max-age: 有效期(秒)
includeSubDomains: 包含子域名
preload: 加入预加载列表
预加载提交:
访问:https://hstspreload.org/
提交域名
等待审核
加入浏览器预加载列表
SSL 优化 ⭐⭐⭐⭐
协议和加密套件:
# 推荐配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
会话优化:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets off;
OCSP Stapling:
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
证书管理
证书续期 ⭐⭐⭐⭐⭐
Let's Encrypt 自动续期:
# 测试续期
certbot renew --dry-run
# 实际续期
certbot renew
# 设置 cron 自动续期
0 3 * * * certbot renew --quiet --post-hook "systemctl reload nginx"
付费证书续期:
提前 30 天续期:
1. 联系证书提供商
2. 重新验证
3. 下载新证书
4. 部署到服务器
5. 测试验证
证书监控 ⭐⭐⭐⭐
到期监控:
# 检查证书到期时间
echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -dates
# 脚本监控
#!/bin/bash
EXPIRY=$(echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2)
EXPIRY_EPOCH=$(date -d "$EXPIRY" +%s)
NOW_EPOCH=$(date +%s)
DAYS_LEFT=$(( ($EXPIRY_EPOCH - $NOW_EPOCH) / 86400 ))
if [ $DAYS_LEFT -lt 30 ]; then
echo "证书将在 $DAYS_LEFT 天后到期" | mail -s "SSL 证书告警" admin@example.com
fi
监控工具:
- Uptime Robot
- SSL Labs
- 证书监控服务
- 自定义脚本
王尘宇实战建议
18 年经验总结
- 必须 HTTPS
- 2026 年标配
- SEO 要求
-
用户信任
-
免费证书足够
- Let's Encrypt
- 云厂商免费
-
定期续期
-
配置优化
- TLS 1.2+
- 强加密套件
-
HSTS
-
自动续期
- 设置自动
- 监控到期
-
避免过期
-
测试验证
- SSL Labs 测试
- 浏览器测试
- 工具测试
西安企业建议
- 使用免费证书
- 配置强制 HTTPS
- 开启 HSTS
- 监控到期
常见问题解答
Q1:免费证书和付费证书有什么区别?
答:
- 加密强度:相同
- 验证级别:付费更高
- 保险赔付:付费有
- 企业形象:付费好
Q2:SSL 证书多久换一次?
答:
- Let's Encrypt: 90 天(自动续期)
- 免费证书:1 年
- 付费证书:1-2 年
Q3:HTTPS 会影响速度吗?
答:
- 轻微影响(<1%)
- HTTP/2 抵消
- 现代硬件无感
- 利大于弊
Q4:如何检查 SSL 配置?
答:
- SSL Labs: ssllabs.com/ssltest
- 浏览器检查
- 命令行工具
- 在线工具
Q5:证书过期了怎么办?
答:
- 立即续期
- 部署新证书
- 检查影响
- 设置监控
总结
网站 SSL 证书配置核心要点:
- 🔒 证书类型 — DV、OV、EV
- 📝 证书申请 — 免费、付费
- ⚙️ 服务器配置 — Nginx、Apache
- 🔄 HTTPS 优化 — 重定向、HSTS
- 📅 证书管理 — 续期、监控
王尘宇建议: SSL 是网站安全的基础。选择合适的证书,正确配置,定期续期,确保安全。
关于作者
王尘宇
西安蓝蜻蜓网络科技有限公司创始人
联系方式:
- 🌐 网站:wangchenyu.com
- 💬 微信:wangshifucn
- 📱 QQ:314111741
- 📍 地址:陕西西安
本文最后更新:2026 年 3 月 18 日
版权声明:本文为王尘宇原创,属于"网站建设系列"第 30 篇,转载请联系作者并注明出处。
下一篇:WEB-31:网站故障排查指南
还木有评论哦,快来抢沙发吧~