修复 HTTPS 跳转和混合内容
一次干净的 HTTPS 跳转,没有不安全的资源,再加上一张能自动续期的证书。
代码和配置保持英文。
把 HTTP 跳转到 HTTPS
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]在用 Cloudflare?请使用 SSL/TLS 的 Full (strict) 模式。“Flexible”模式通过 HTTP 与你的服务器通信,再加上服务器端的跳转,就会造成无限跳转循环。
修复混合内容
混合内容是指在 HTTPS 页面上通过 http:// 加载的任何内容。可以在 DevTools → Console 或你的 HackGrade 结果中找到它。在 WordPress 中,先在设置 → 常规中更新站点地址,然后替换数据库中的旧链接(先用 --dry-run 试运行):
wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid --dry-run作为兜底,CSP 指令 upgrade-insecure-requests 会让浏览器通过 https:// 获取 http:// 资源。
保持证书自动续期
整个行业的证书有效期都在缩短,所以续期必须自动化。使用 certbot:
sudo certbot renew --dry-run