從 PFX 檔案匯出 伺服器憑證檔 與 私密金鑰檔 - daniel-qa/Azure-Kubernetes-Service GitHub Wiki
https://blog.miniasp.com/post/2019/04/17/Convert-PFX-and-CER-format-using-OpenSSL
直接從 PFX 檔案匯出 伺服器憑證檔 與 私密金鑰檔
畢竟你已經拿到了 PFX 檔案,裡面已經包含了 伺服器憑證檔 與 私密金鑰檔,如果當時手邊並沒有當初建立 CSR 的 私密金鑰檔 時,你就需要學會如何直接從 PFX 檔案匯出 伺服器憑證檔 與 私密金鑰檔!
假設你手邊只有一個 server.pfx 檔案,其密碼為 vEryComPleXPw,你想匯出 server.cer 與 server.key 檔案,那麼你可以執行以下命令:
1.產生 伺服器憑證檔 ( server.cer )
Linux Shell 環境
openssl pkcs12 -in server.pfx -nokeys -password "pass:vEryComPleXPw" -out - 2>/dev/null | openssl x509 -out server.crt
2.產生 私密金鑰檔 ( server.key )
openssl pkcs12 -in server.pfx -nocerts -password "pass:vEryComPleXPw" -nodes -out server.key
從 .pfx 轉換成 Nginx 需要的格式
在你的 Debian 環境中,使用 openssl 命令來轉換 .pfx:
- 1 . 提取私鑰 (server.key)
openssl pkcs12 -in server.pfx -nocerts -nodes -out /etc/nginx/sites-available/server.key
- 2 . 提取伺服器憑證 (serverCert.pem)
openssl pkcs12 -in server.pfx -clcerts -nokeys -out /etc/nginx/sites-available/serverCert.pem
- 3 . 提取 CA 憑證(如果需要)
如果你的 .pfx 包含 CA 憑證,則執行:
openssl pkcs12 -in server.pfx -cacerts -nokeys -out /etc/nginx/sites-available/ca.crt
- Nginx 配置
確保 Nginx 的配置 (/etc/nginx/nginx.conf 或 /etc/nginx/sites-available/default.conf) 使用正確的憑證路徑:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/nginx/sites-available/serverCert.pem;
ssl_certificate_key /etc/nginx/sites-available/server.key;
location / {
proxy_pass http://your-backend-service;
}
}
(可選)如果有 CA 憑證
如果你有 ca.crt,可以加上:
ssl_trusted_certificate /etc/nginx/sites-available/ca.crt;
重新啟動 Nginx
轉換完成後,測試 Nginx 設定:
nginx -t
如果沒有錯誤,重新啟動 Nginx:
systemctl restart nginx
然後你可以測試 HTTPS:
curl -k https://yourdomain.com
這樣就完成 .pfx 轉 .pem 和 .key,並成功配置到 Nginx 🚀!