摘自 https://www.hqyman.cn/post/16247.html
?《SSL 证书格式大乱斗》
—— 从 Nginx 到 IIS,一篇就够用
先放结论:
Linux 系爱 PEM,Windows 系爱 PFX;Java 老项目 JKS,CDN 啥都能吃。
1️⃣ 为什么“格式”总被拎出来吊打?
SSL/TLS 只是“协议”,真正的“身份证”是 X.509 证书。
同一张身份证,可以做成不同“封装”:
.pem.crt .key | -BEGIN- | |||
.der.cer | ||||
.pfx.p12 | ||||
.p7b.p8 | ||||
.jks |
2️⃣ Web 代理全家福
下面把“常见代理/CDN/反向代理”按出场频率排个序,告诉你他们吃哪口饭。
| Nginx | .key | nginx -s reload | |||
| Apache httpd | .key | apachectl graceful | |||
| HAProxy | 合并 | socat | |||
| Traefik | |||||
| Envoy | |||||
| Caddy | |||||
| IIS | |||||
| Tomcat/Java | |||||
| OpenResty | lua-resty-core | ||||
| CDN(阿里/腾讯/Cloudflare) |
3️⃣ 一张流程图:流量到底在哪解密?
浏览器 ──HTTPS──▶ CDN/边缘节点 ──HTTP──▶ 源站
▲ ▲
│ 证书装在边缘 │ 源站可裸跑 80
└────── 用户看到的小锁在这里 ───────┘只要“小锁”出现的位置,就必须放证书;后面走 HTTP 也没人管。
4️⃣ 格式互转 5 条命令(复制即用)
1. PFX → PEM(拆钥匙) openssl pkcs12 -in full.pfx -nocerts -nodes -out private.key
openssl pkcs12 -in full.pfx -clcerts -nokeys -out cert.crt
openssl pkcs12 -in full.pfx -cacerts -nokeys -out chain.crt2. PEM → PFX(合大包) openssl pkcs12 -export -out full.pfx -inkey private.key -in cert.crt -certfile chain.crt
3. PEM → DER(给路由器/AP) openssl x509 -in cert.crt -outform der -out cert.der
4. 查看 PEM 里装了啥 openssl crl2pkcs7 -nocrl -certfile cert.crt | openssl pkcs7 -print_certs -text -noout
5. 查看 PFX 里装了啥 openssl pkcs12 -info -in full.pfx -nodes
5️⃣ 高频踩坑 9 连击
-----BEGIN PRIVATE KEY----- 段落粘进去 | ||
acme.sh --dns 钩子 | ||
crontab -ecertbot renew --quiet |
6️⃣ 面试常问 3 连
Q1:RSA 与 ECC 证书怎么选?
• 老设备兼容选 RSA 2048 • 新系统、追求小握手包选 ECC 256(secp256r1)
Q2:域名改了,原证书还能用吗?
• 证书绑定 CN/SAN,改域名必须重签,无“改名”操作。
Q3:双向 TLS(mTLS)怎么玩?
• 服务端仍装原证书 • 另建自签 CA → 给客户端签客户端证书 • Nginx 加 ssl_verify_client on; ssl_client_certificate ca.crt;
7️⃣ 懒人工具清单
mkcert | ||
ssl-checker | ||
acme.shcertbot |
8️⃣ 小结思维导图(文字版)
SSL 证书
├─ 格式:PEM / DER / PFX / JKS
├─ 链:叶子→中级→根
├─ 私钥:RSA2048 / ECC256
└─ 部署层:CDN → 网关 → 源站记住四步:
“拆包→拼链→对号入座→定时续期”,
下次再配证书,3 分钟搞定,早下班不香吗?
本文链接:https://kinber.cn/post/5819.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝:

支付宝微信扫一扫,打赏作者吧~
