You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何让Let's Encrypt与Cloudflare兼容并恢复网站SSL安全锁?

解决Cloudflare SSL全严格模式下安全锁消失的问题

嘿,我来帮你梳理下这个问题——当你切换到Cloudflare的SSL「全(严格)」模式后,安全锁消失显示信息图标,核心原因几乎都是Cloudflare和你的自有服务器之间的SSL信任链路出了问题,或者页面存在混合内容,和你用不用Let's Encrypt证书完全不冲突,甚至Let's Encrypt是最适合搭配Cloudflare的免费证书之一。下面是一步步的排查和修复方案:

1. 先确认自有服务器的Let's Encrypt证书状态

Cloudflare的「全严格」模式要求它和你的服务器之间的连接必须是完全受信任的SSL连接,所以首先得确保你服务器上的Let's Encrypt证书是正常的:

  • 直接通过服务器IP访问https://你的服务器IP:443(如果有自定义端口就改对应端口),看看浏览器是否提示证书错误;
  • 也可以用命令行验证:curl -v https://你的域名 --resolve 你的域名:443:你的服务器IP,看输出里是否有证书信任相关的错误;
  • 如果这一步有问题,先修复服务器端的证书:
    • 检查Let's Encrypt证书是否过期(用certbot certificates查看状态),过期了就用certbot renew续期;
    • 确认Web服务(Nginx/Apache)的配置里,正确加载了证书文件(包括完整的证书链,不是只加载单张证书)和对应的私钥;
    • 确保证书覆盖了你当前使用的所有域名/子域名。

2. 检查Cloudflare的SSL相关设置

登录Cloudflare控制台,进入你的域名管理页面,重点检查这几个选项:

  • SSL/TLS → 加密模式:确认是「全(严格)」模式,不要选其他模式;
  • SSL/TLS → 边缘证书:开启「始终使用HTTPS」,强制所有访问跳转到HTTPS;
  • SSL/TLS → 源服务器:开启「自动HTTPS重写」——这个功能会自动修复页面里的混合内容(比如HTTP资源链接),是解决信息图标的常见利器;
  • DNS解析记录:确保你的主域名A/CNAME记录是橙色云朵状态(开启Cloudflare代理),如果是灰色云朵,Cloudflare的SSL不会生效。

3. 排查混合内容问题

浏览器显示信息图标,最常见的原因之一就是页面加载了HTTP协议的资源(比如图片、JS、CSS、字体等),即使SSL链路没问题,混合内容也会导致安全锁降级:

  • 打开浏览器开发者工具(F12),切换到「控制台」标签,看是否有「混合内容」的警告信息;
  • 修复方式:
    • 把所有HTTP开头的资源链接改成HTTPS;
    • 或者用协议相对路径(比如//example.com/xxx.jpg),自动适配当前页面的协议;
    • 前面提到的Cloudflare「自动HTTPS重写」也能帮你自动替换这些链接,开启后等几分钟生效。

4. 关于证书的选择:Let's Encrypt + Cloudflare是完美组合

你完全不需要替换Let's Encrypt证书,两者的分工很明确:

  • Cloudflare边缘证书:给用户的浏览器看,由Cloudflare自动颁发和维护,覆盖你域名的所有子域名,只要DNS代理开启就会生效;
  • 服务器端的Let's Encrypt证书:给Cloudflare和你的服务器之间的连接用,只要保持有效且被信任,就能满足「全严格」模式的要求。

按照上面的步骤排查,基本就能恢复浏览器的安全锁图标了。

内容的提问来源于stack exchange,提问作者Nuru Salihu

火山引擎 最新活动