Ssl

CentOS7 上 HAProxy 中的 Comodo SSL 證書

  • October 27, 2016

我有一個 CentOS 7 伺服器,前面是 HAProxy 1.6,後面是 Apache 2.4。

我正在嘗試在 HAProxy 中載入 SSL 證書,但是它需要一個.pem文件。

我從 Comodo 獲得了以下文件:

  • 捆綁包.crt
  • 證書.crt
  • 證書密鑰
  • 證書.p7b

並嘗試合併certificate.crtand certificate.key

cat certificate.crt certificate.key > haproxy1.pem

到目前為止,這有效,但是經常Chain Issues出現錯誤。還嘗試將cabundle.crt,certificate.crt和合併certificate.key到一個.pem文件中。但這給了我一個SSL handshake failureHAProxy 日誌。

如何讓它正常工作?

文件內容

捆綁包.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 的連鎖問題:不正確的訂單警告,但它仍然有效,所以它並沒有真正打擾我。

引用自:https://serverfault.com/questions/811192