目录
🛠 教程:如何将 .crt 和 bundle.crt 拼接为 fullchain.pem
🛠 教程:如何将 .crt
和 bundle.crt
拼接为 fullchain.pem
在部署 HTTPS(如 Nginx、Apache、HAProxy)服务时,经常需要提供一份完整的证书链文件,也就是 fullchain.pem
。这个文件通常由以下两个部分拼接组成:
✅
fullchain.pem = 域名证书 (domain.crt) + 根证书/中间证书 (ca_bundle.crt 或 root_bundle.crt)
本教程将手把手教你如何快速完成这个拼接,并避免常见错误。
📁 一、准备好两个文件
确保你已经从 CA(证书机构)或托管服务商(如阿里云、腾讯云、Let's Encrypt)拿到了以下两个文件:
文件名 | 说明 |
---|---|
your_domain.crt | 这是你域名的证书(站点证书) |
ca_bundle.crt | 包含中间证书和根证书,用于建立信任链 |
🔧 二、使用 cat
命令拼接
打开终端(Linux/Mac)或 WSL(Windows 用户),执行如下命令:
cat your_domain.crt ca_bundle.crt > fullchain.pem
⚠️ 注意顺序:
-
一定是
your_domain.crt
在前,ca_bundle.crt
在后 -
否则浏览器或客户端会验证失败(证书链错误)
📦 三、检查结果
你可以用 less
或 vim
检查 fullchain.pem
内容:
less fullchain.pem
应当看到如下结构:
-----BEGIN CERTIFICATE-----
【你网站的证书】
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
【中间 CA 证书】
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
【根 CA 证书】
-----END CERTIFICATE-----
如果你看到多个 BEGIN CERTIFICATE
,说明拼接成功。
🧪 四、测试 fullchain.pem 是否可用(可选)
你可以使用 openssl
测试拼接后的证书是否正确加载:
openssl verify -CAfile fullchain.pem fullchain.pem
若输出 fullchain.pem: OK
,说明格式和链条正确。
🚀 五、在 Nginx 配置中使用
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/your_domain.key;
...
}
💡常见问题排查
问题 | 原因 | 解决方案 |
---|---|---|
证书链不完整 | 拼接顺序错误或缺少根证书 | 确保域名证书在前,根证书在后 |
浏览器警告“不受信任证书” | 没有提供中间证书 | 使用带有中间证书的 bundle |
.pem 无法加载 | 内容格式不对(比如是 DER 格式) | 确保是 PEM 格式(BEGIN/END) |
✅ 总结一句话:
正确顺序拼接 PEM 证书:
domain.crt
+ca_bundle.crt
→fullchain.pem
,用于服务器加载完整证书链。