fat1测试环境证书过期排查梳理过程

fat1测试环境证书过期排查梳理过程

根因与现状
fat1.myTest.com:单域名证书(DigiCert Encryption Everywhere),已过期 → 导致 Postman / 浏览器 NET::ERR_CERT_DATE_INVALID。
www.myTest.com:泛域名证书(WoTrus *.myTest.com),有效。

⚠️ 注意:泛域名 *.myTest.com 理论上能覆盖 fat1.myTest.com,但当前服务器对 fat1 配置了独立的单域名证书(且已过期),SNI 匹配时优先返回了过期的单域证书(之前你带错 SNI 时甚至返回了 *.geyunzuche.com,说明服务器多证书/默认证书配置较混乱)。


1.在服务器上面执行

openssl s_client -connect fat1.myTest.com:443 -servername fat1.myTest.com
openssl s_client -connect fat1.myTest.com:443 -servername fat1.myTest.com 2>/dev/null | openssl x509 -noout -dates -subject

 


关键信息:

depth=0 CN = fat1.myTest.com
verify error:num=10:certificate has expired
notAfter=Oct 22 23:59:59 2026 GMT

Verify return code: 10 (certificate has expired)

 


客户端
↓
DNS → CDN / WAF / SLB(阿里云/腾讯云)
↓ (SSL 在这里终结)
Nginx(VM-1-181-centos)只收 HTTP 或 内网 HTTPS

 

或者在浏览器上面访问,可以在浏览器的左侧看到,证书是否过期等情况


排查锁定问题: 快速定位命令(确认链路)

# 1. 看 DNS 解析到哪
dig fat1.myTest.com +short
返回: 118.195.162.XX

# 2. 看 IP 归属
curl ipinfo.io/118.195.162.XX 内网地址: XX.XX.22.212

[root@VM-1-181-centos /]$curl ipinfo.io/118.195.162.XX


# 3. 直接连 IP 看证书(绕过 CDN)
openssl s_client -connect 118.195.162.XX:443 -servername fat1.myTest.com

 

 


2.  1.180,1.181 是生产环境的证书服务器
fat1是在2.212服务器上面,不要搞错了。

##查看文件的位置

nginx -T 2>/dev/null | grep -A5 "myTest.com"
nginx -T 2>/dev/null | grep -B20 "fat1.myTest.com" | head -30

 

在腾讯云上面搜索ssl证书,找到证书然后下载到本地,然后在上传到22.212的 cert目录下面

证书文件到底在哪(直接定位命令)

# 1. 全盘找 fat1 相关证书
find / -iname "*fat1*" 2>/dev/null

# 2. 找 Nginx 里所有证书引用
grep -r "ssl_certificate" /usr/local/nginx/conf

# 3. 看当前 443 实际加载的证书(如果本机 curl 自己)
echo | openssl s_client -connect 127.0.0.1:443 -servername fat1.myTest.com 2>/dev/null | openssl x509 -noout -subject -dates

# 4. 看编译/运行路径
nginx -V 2>&1 | grep -o "prefix=[^ ]*"
ps -ef | grep nginx

 

 

3.找到文件之后,下载到本地,编辑修改。
先备份文件
mv 原来文件,新文件名称

cp 原来文件,新文件名称

 

方案 A:复用你已有的有效泛域名证书(最快)(且 *.myTest.com 有效,覆盖 fat1)
bundle 或 fullchain 文件

 

server {
listen 80;
listen 443 ssl;
server_name fat1.myTest.com;
ssl_certificate cert/myTest.com.crt; -- 关键是修改文件路径,替换 crt,pem文件都可以。
ssl_certificate_key cert/myTest.com.key; -- 关键是修改文件路径,替换 key后缀文件
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;
ssl_prefer_server_ciphers on;
client_max_body_size 20m;

}

 

方案 B:单独给 fat1 重签新证书
如果一定要单独证书:
腾讯云 SSL 控制台申请 fat1.myTest.com(DNSPod 验证)
下载 Nginx 格式(fullchain + key) ,接下来同方案A一致


4.检查和生效nginx

nginx -t
nginx -s reload

 

5.检查证书文件

# 查找证书文件:
find / -name "myTest.com.key" 2>/dev/null
/usr/local/nginx/conf/cert/myTest.com.key

# 查看当前证书有效期
openssl x509 -in /usr/local/nginx/conf/cert/myTest.com.crt -noout -dates -subject
notBefore=Aug 5 00:00:00 2026 GMT
notAfter=Feb 19 23:59:59 2027 GMT


openssl x509 -in /usr/local/nginx/conf/cert/myTest.com.crt -noout -subject -issuer -dates
subject= /CN=*.myTest.com
issuer= /C=CN/O=WoTrus CA Limited/CN=WoTrus RSA DV SSL CA 2
notBefore=Aug 5 00:00:00 2026 GMT
notAfter=Feb 19 23:59:59 2027 GMT


nginx -V 2>&1 | grep prefix
configure arguments: --prefix=/usr/local/nginx/ --with-http_ssl_module --with-pcre --with-http_stub_status_module --with-http_gzip_static_module --with-stream=dynamic --with-http_realip_module --add-module=/root/lua-nginx-module-master --add-module=/root/nginx_upstream_check_module-master --add-module=/root/nginx-upsync-module-master

 

 

思路2:
如果你不想动 fat1 配置,还有个更省事的办法
# 备份旧的

cp cert/fat1.myTest.com.pem cert/fat1.myTest.com.pem.bak
cp cert/fat1.myTest.com.key cert/fat1.myTest.com.key.bak

 

然后把新文件按原来的文件名称放上去。
最后:nginx -s reload


科普:
pem 和 crt 在 Nginx 里本质是一回事,区别只是文件后缀名。

ssl_certificate cert/myTest.com.pem; ✅ 可以
ssl_certificate cert/myTest.com.crt; ✅ 也可以

 


另外的可能:
可能性 3:SLB(负载均衡)上配了 HTTPS 监听
阿里云/腾讯云 CLB/ALB​ 可以直接绑证书
后端 Nginx 只跑 HTTP
证书在 负载均衡控制台

如果是 SLB
云厂商控制台 → 负载均衡 → 监听器 → HTTPS:443 → 证书
替换成新证书

 

posted on 2026-10-23 15:02  oktokeep  阅读(10)  评论(1)    收藏  举报