Ssl
CentOS7 上 HAProxy 中的 Comodo SSL 證書
我有一個 CentOS 7 伺服器,前面是 HAProxy 1.6,後面是 Apache 2.4。
我正在嘗試在 HAProxy 中載入 SSL 證書,但是它需要一個
.pem
文件。我從 Comodo 獲得了以下文件:
- 捆綁包.crt
- 證書.crt
- 證書密鑰
- 證書.p7b
並嘗試合併
certificate.crt
andcertificate.key
:cat certificate.crt certificate.key > haproxy1.pem
到目前為止,這有效,但是經常
Chain Issues
出現錯誤。還嘗試將cabundle.crt
,certificate.crt
和合併certificate.key
到一個.pem
文件中。但這給了我一個SSL handshake failure
HAProxy 日誌。如何讓它正常工作?
文件內容
捆綁包.crt
-----BEGIN CERTIFICATE----- hash -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- hash -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- hash -----END CERTIFICATE-----
證書.crt
-----BEGIN CERTIFICATE----- hash -----END CERTIFICATE-----
證書密鑰
-----BEGIN PRIVATE KEY----- hash -----END PRIVATE KEY-----
haproxy.cfg
frontend public bind *:80 bind *:443 ssl crt /etc/ssl/certs/private/
通過執行以下操作解決了這個問題:
如果我提供密碼,我的 ISP 會給我一個解密的私鑰,但是當我自己使用 openssl 解密它時,這給了我不同的結果。
所以我下載了加密版本並使用密碼自己解密:
openssl rsa -in certificate.key -out rsa.key
這給了我一個以
-----BEGIN RSA PRIVATE KEY-----
而不是-----BEGIN PRIVATE KEY-----
從 ISP 開始的文件和不同的 base64 內容。此外,顯然它
cabundle.crt
包括一個根證書(第一個塊),這不是必需的,所以我刪除了這個。接下來,我將這些文件合併在一起:
cat certificate.crt cabundle.crt rsa.key > domain.com.pem
也直接在
haproxy.cfg
文件中指定,防止載入錯誤的文件:frontend public bind *:80 bind *:443 ssl crt /etc/haproxy/ssl/domain.com.pem
我仍然收到來自 SSLLabs 的連鎖問題:不正確的訂單警告,但它仍然有效,所以它並沒有真正打擾我。