本文目录导读:

配置全站 HTTPS 涉及多个环节,从证书获取到服务器配置,再到强制跳转和资源检查,以下是标准化的操作步骤,适用于大多数 Web 服务器和云服务环境:
核心准备工作
获取 SSL 证书
- 免费方案:使用 Let's Encrypt(推荐 Certbot 工具)
- 商业方案:DigiCert、GlobalSign、Let's Encrypt 付费版
- 云厂商:阿里云SSL证书、腾讯云SSL证书、AWS Certificate Manager
确认服务器环境
- 操作系统类型(Linux/Windows)
- Web 服务器软件(Nginx/Apache/IIS/Tomcat)
- 是否使用 CDN、负载均衡等中间层
针对不同服务器的配置
场景 A:Nginx 配置
server {
listen 443 ssl http2;
server_name yourdomain.com;
# 证书文件路径
ssl_certificate /etc/ssl/certs/yourdomain.crt;
ssl_certificate_key /etc/ssl/private/yourdomain.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;
# HSTS(强制浏览器使用HTTPS)
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# 其他站点配置
root /var/www/html;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
}
# HTTP 重定向到 HTTPS(如果只做单向)
server {
listen 80;
server_name yourdomain.com;
return 301 https://$server_name$request_uri;
}
场景 B:Apache 配置
<VirtualHost *:443>
ServerName yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/yourdomain.crt
SSLCertificateKeyFile /etc/ssl/private/yourdomain.key
# 安全配置
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite HIGH:!aNULL:!MD5
SSLHonorCipherOrder on
# HSTS
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</VirtualHost>
# HTTP 重定向
<VirtualHost *:80>
ServerName yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>
强制全站 HTTPS 的关键步骤
自动跳转(HTTP → HTTPS)
- Nginx:使用
return 301 - Apache:使用
Redirect permanent - CDN:开启「HTTP 自动跳转 HTTPS」
- 云负载均衡:配置监听规则重定向
HSTS(HTTP Strict Transport Security)
- 意义:通知浏览器永远只通过 HTTPS 访问你的站点,避免首次 HTTP 连接的降级攻击。
- 配置:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload - 提交预加载列表(可选但强烈推荐):访问 HSTS Preload 提交你的域名,让浏览器在首次连接前就预加载 HTTPS 规则。
- 注意:
includeSubDomains会强制所有子域名,请确认子域名均已支持 HTTPS。
修复
全站 HTTPS 后,所有资源(脚本、样式、图片、字体、API)必须通过 HTTPS 加载,否则浏览器会阻止混合内容。
检查方法:
- 浏览器开发者工具(F12)→ Console → 查找 "Mixed Content" 错误
- 使用在线扫描工具:Why No Padlock、SSL Labs
修复办法:
- 将所有资源链接改为相对路径(
//cdn.example.com/file.js)或协议无关路径(/assets/js/main.js) - 在代码中统一使用
https:// - 反向代理中,设置
proxy_set_header X-Forwarded-Proto https;
API 接口统一 HTTPS
- 后端 API 域名也需部署 HTTPS
- 前端 AJAX 请求使用
https://api.yourdomain.com - 跨域场景(CORS)需允许 HTTPS 来源
配置验证与测试
在线扫描工具
- SSL Labs Server Test —— 全面评估 SSL/TLS 配置
- Why No Padlock —— 检查混合内容
- SSL Checker —— 验证证书链
本地检查
curl -I https://yourdomain.com # 检查返回的状态码(应为200)和 Location 头(不应有跳转)
浏览器手动访问
https://yourdomain.com # 应直接加载,无安全警告
http://yourdomain.com # 应自动跳转到 https://
特殊场景处理
CDN 加速的情况
- 在 CDN 控制台开启「强制 HTTPS 跳转」
- 配置 CDN 节点回源时使用 HTTPS(源站也需要有证书,或使用 CDN 提供的免费证书)
- 确保 CDN 和源站的 HSTS 策略一致
多域名/泛域名证书
- 使用 SAN 证书(Subject Alternative Name)覆盖
*.example.com及example.com - 泛域名证书不能直接覆盖二级域名(如
blog.example.com可用*.example.com,但cdn.example.com同样可用) - 如果需要
example.com本身,需要单独包含或使用泛域名 + 顶级域名
负载均衡器反向代理
- 负载均衡器持有证书并终止 TLS
- 负载均衡器与后端服务器之间建议使用内网 HTTP(关闭证书验证)
- 负载均衡器需要正确传递
X-Forwarded-Proto: https给后端,让应用感知客户端是通过 HTTPS 访问的
常见问题排查
证书链不完整
- 症状:浏览器提示「证书错误」或「不受信任的证书」
- 解决:将中间证书和根证书合并到 .crt 文件中(部分 CA 已提供合并后的文件)
重定向循环
- 症状:访问 HTTP 后 301,浏览器再次访问 HTTPS 又 301 回 HTTP
- 解决:检查是否有多个重定向规则互相冲突(如服务器 + CDN + .htaccess 同时设置)
端口未开放
- 确认服务器安全组/防火墙已放行 443 端口
- 云服务器控制台需添加「HTTPS(443)」入站规则
维护与续期
- Let's Encrypt:配置 cron 定时任务,每月自动续期
0 0 * * * /usr/bin/certbot renew --quiet
- 商业证书:设置到期前提醒(通常提前 30 天通知)
- 监控告警:使用监控工具(如 UptimeRobot、StatusCake)检测 HTTPS 可用性
全站 HTTPS 的本质是三个动作:
- 获取并部署有效证书(443端口)
- HTTP 强制重定向到 HTTPS(301)
- 确保所有资源通过 HTTPS 加载(消灭混合内容)
执行完毕后在 SSL Labs 测试,获得 A 评级即为通过。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播