检查
证书链补全工具
获取服务器的证书链,按正确顺序生成 fullchain.pem、cert.pem 和 chain.pem。
证书链补全工具会按正确顺序给出服务器的完整证书链。输入主机名(不是 443 端口就填端口),点 生成证书链,下载 fullchain.pem,可以直接用于 Nginx、Apache、HAProxy、宝塔面板或云厂商控制台。也可以粘贴一张站点证书,看看它的中间证书从哪里下载。
怎么用
从服务器获取
- 输入主机名,比如
www.example.com,以及端口。 - 点 生成证书链,工具会列出每张证书的主体、签发者和到期时间。
- 复制或下载
fullchain.pem(站点证书 + 中间证书)、cert.pem(站点证书)或chain.pem(中间证书)。
从证书开始
- 选 从证书开始,粘贴 PEM 格式的站点证书。
- 工具在本地解析后,显示证书“授权信息访问”扩展里的 CA Issuers 地址,从这个地址可以下载签发它的中间证书,一般是 DER 格式,可以用DER 转 PEM转换。
为什么顺序很重要
握手时服务器会发送一组证书。TLS 1.2 要求第一张是站点证书,后面每一张都为前一张签名;TLS 1.3 放宽了要求,但仍建议同样的顺序,而且很多客户端依然依赖它。缺了中间证书,不会自行下载的客户端就会报缺少中间证书或 curl: (60) 之类的错误。
拿到证书链之后
常见问题
根证书要放进证书链文件吗?
不用。客户端本身就有根证书,再发一遍只会让每次握手多传数据。工具生成的 fullchain.pem 和 chain.pem 不包含自签名的根证书。
Nginx、Apache、宝塔、云控制台各用哪个文件?
Nginx 的 ssl_certificate、Apache 2.4.8+ 的 SSLCertificateFile、HAProxy、宝塔“证书(PEM格式)”和阿里云/腾讯云上传证书的“证书文件”都用 fullchain.pem。老版本 Apache 和 Tomcat 的 certificateChainFile 需要分开的 cert.pem 和 chain.pem。
浏览器显示正常,为什么还要补证书链?
电脑浏览器能从缓存或网上补齐缺失的中间证书,但 curl、Java、Python、安卓 App、微信小程序后台调用的很多 HTTP 库都不会,会报 unable to get local issuer certificate 之类的错误。