"此网站无法提供安全连接"?一次 HTTPS 证书加载故障排查

运维
部门同事反馈多个网站域名访问失败,浏览器报错“此网站无法提供安全连接”,错误码为ERR_SSL_PROTOCOL_ERROR,看看如何解决。

问题背景

某日,部门同事反馈多个网站域名访问失败,浏览器报错“此网站无法提供安全连接”,错误码为ERR_SSL_PROTOCOL_ERROR。

作为运维人员,第一反应是 HTTPS 证书可能存在问题,比如过期或加载失败。环境使用的是 APISIX+ETCD部署的代理,且上一任维护者未留下任何维护文档,这让问题的排查变得更加复杂。

图片


初步检查:证书过期的可能性排除

登录 APISIX 的 Dashboard管理界面,发现证书的过期时间为2025年,可以排除证书过期的可能性。但浏览器依然报错,提示无法建立安全连接。

图片

为了进一步确认证书问题,直接通过 ETCD 查询证书的 Key 值:

etcdctl get / --prefix --keys-only | grep -i ssl
/apisix-user/ssl/
/apisix-user/ssls/585922421492811006
/apisix/ssl/

通过 etcdctl get /apisix-user/ssls/585922421492811006 查看证书内容,与 Dashboard 上的证书完全一致。这表明 ETCD 数据没有问题,但问题依然没有找到。

深入分析:查看 APISIX 日志

通过查看 APISIX 的日志,发现以下报错信息

2024/12/13 06:04:00 [error] 21399#21399: *223993 [lua] 
 radixtree_sni.lua:145: match_and_set(): failed to find any 
 SSL certificate by SNI: test2.hello.cn, 
 context: ssl_certificate_by_lua*, 
 client: 120.183.123.80, server: 0.0.0.0:443

这提示 APISIX 在通过 SNI 加载 SSL 证书时,未能找到对应的证书

此时我突发奇想,在dashboard界面删除证书,重新上传

图片

提交后,域名既然可以正常访问了,奇怪的是刚开心不到几秒,再次出现“此网站无法提供安全连接”现象,真让人崩溃

图片

查看apisix服务状态,发现服务既然重启过,这是一个异常点,怀疑可能是 APISIX 服务不断重启导致加载失败。

图片

于是检查系统定时任务:

[root@etcd-apixi ~]# crontab -l
* * * * * /opt/apisix-cleandisk.sh

此定时任务在每分钟运行一次

问题发现:定时任务引发服务中断

查看脚本内容:

#!/bin/bash
threshold=50
usage=$(df -h /| awk 'NR==2{print $5}'| cut -d'%'-f1)
if["$usage"-gt "$threshold"];then
    echo "Disk usage is above $threshold%. Cleaning up logs..."
    sudo systemctl stop apisix
    sudo rm -f /usr/log/apisix/logs/*
    sudo systemctl start apisix
    echo "Log cleanup complete."
else
    echo "Disk usage is below $threshold%. No cleanup needed."
fi

这个脚本每分钟检查磁盘使用率是否超过 50%,若超过,则停止 APISIX 服务以清理日志文件,再重启服务。

[root@etcd-apisix logs]# df -h
Filesystem Size Used     Avail Use% Mounted on
devtmpfs        3.8G 0    3.8G 0%    /dev
tmpfs           3.9G 0    3.9G 0%    /dev/shm
tmpfs           3.9G 425M 3.5G 11%   /run
tmpfs           3.9G  0    3.9G 0%   /sys/fs/cgroup
/dev/vda1       100G  51G  50G 51%   /
tmpfs           783M 0  783M    0%   /run/user/0

检查磁盘空间为51%,符合清理条件,定时任务的执行频率为 每分钟一次,即便磁盘使用率低于阈值,APISIX 的日志清理逻辑也会被频繁触发apisix重启。

APISIX 需要一定时间完成启动过程,包括证书和路由的加载。频繁重启会造成启动尚未完成,新的重启操作已开始,此时访问就会出现失败。

注释定时任务后,问题果然解决,此次问题排查并没有深入的理论知识,很多运维问题没有头绪时,要留意定位过程中的异常现象。

责任编辑:庞桂玉 来源: 运维之美
相关推荐

2023-04-06 07:53:56

Redis连接问题K8s

2018-07-03 10:49:22

性能故障排查

2014-11-12 11:17:32

网站迁移运维

2020-08-27 21:36:50

JVM内存泄漏

2022-10-25 08:56:16

2020-06-12 13:26:03

线程池故障日志

2019-04-18 10:55:00

故障演练流量

2021-05-13 08:51:20

GC问题排查

2009-01-06 15:20:01

2019-03-15 16:20:45

MySQL死锁排查命令

2017-12-19 14:00:16

数据库MySQL死锁排查

2011-05-06 10:32:06

硬盘键盘

2010-07-30 16:10:45

UPS设备烧毁故障分析

2021-01-08 13:52:15

Consul微服务服务注册中心

2020-10-18 12:53:29

黑科技网站软件

2019-01-21 11:17:13

CPU优化定位

2021-03-29 12:35:04

Kubernetes环境TCP

2022-11-03 16:10:29

groovyfullGC

2023-01-04 18:32:31

线上服务代码

2023-01-05 11:44:43

性能HTTPS
点赞
收藏

51CTO技术栈公众号