您好!欢迎访问否玩代码!
My title page contents
广告位

HTTPS证书过期不用慌,3步解决“不被信任”问题

栏目: 日期: 浏览:138

为什么你的网站突然“不安全”了?

你访问自身站点之际, 浏览器弹出“证书过期”或者“证书不被信任”的红色警告之时, 不要慌张。这从本质上来说是一个时间戳方面的问题, SSL/TLS证书存在固定的有效期, 一般是1年, 一旦过期, 浏览器就会觉得当前连接有中间人攻击的风险, 进而阻断访问。对于站长以及技术爱好者而言, 这是一个常见然而必须迅速解决的“运维小事故”。

第一步:快速诊断问题根源

在动手前,先判断是哪种情况:

就目前查看证书有效期的情况而言, 证书确实已然处于过期状态, 要是出现此种已过期的状况, 那么便直接进行续签或者重新去申请。

证书处于未过期状态, 然而却提示“不被信任”, 一般起因在于, 证书不是完整的, 再或者服务器没有去正确配置中间证书(CA Bundle)。

此地时间有误, 查证服务器与时客户端二者时间有无齐同, NTP服务未开启, 会致使时间出现偏差。

使用 openssl 命令快速验证:

openssl s_client -connect 你的域名:443 -servername 你的域名

留意输出里头的 verify error 以及证书有效期字段。

第二步:针对不同情况执行修复

1. 证书确实过期——续签或重签

Let’s Encrypt 用户, 当进行 certbot-renew 操作时, 系统将会自动开展检查工作, 并且会进行续签操作。

如若出现“证书不在此服务器上”样的提示, 这时就要运用certbot certonly --standalone -d你的域名来再次申请。

诸如阿里云、腾讯云、DigiCert 这类商业证书: 先登录控制台, 而后在 SSL 证书管理模块那儿点击“续费”或者“重新签发”, 接着下载新证书, 随后运用此新证书去替换掉服务器上的旧文件。

2. 证书不完整——补全中间证书

很多免费或自签发证书会缺失中间证书。完整的证书链应该是:

服务器证书 → 中间证书 → 根证书

Nginx 配置示例

server {
    listen 443 ssl;
    ssl_certificate /path/to/fullchain.pem;   # 包含服务器证书+中间证书
    ssl_certificate_key /path/to/privkey.pem;
}

若仅有单个.crt 文件, 那么需从 CA 官网下载中间证书, 接着使用文本编辑器将其合并到 fullchain.pem 里, 且合并时分服务器证书在上、中间证书在下的顺序来进行。

3. 本地时间问题——同步NTP

在服务器上执行:

sudo ntpdate ntp.aliyun.com
sudo systemctl restart ntp

好比你所用的Windows或者Mac这类客户端, 同样得仔细查看时间同步的相关设置。

第三步:验证并监控

加以修复之后, 运用 SSL Labs 在线测试去确认证书链以及信任级别, 对于 Let’s Encrypt 证书推荐配置 Cron 任务来进行自动续签。

0 0   * /usr/bin/certbot renew --quiet && systemctl reload nginx

总结

证书过期这件事看似不算大事, 然而要是处理得不合适, 就会致使出现用户流失以及 SEO 参数被减损的情况对用户信息带来不利影响等等。其关键的重要点在于, 要做到定期进行续签行动, 要维持完整的证书链条, 要保证时间处于同步状态。

否玩代码编辑 https://www.fouwan.com