web-dev-qa-db-ja.com

haproxy:秘密鍵とPEMファイルからロードされた証明書の間の不整合

別のサーバー用に署名された証明書を使用しようとしています。私は秘密鍵と証明書の両方を持っています。

私のPEMファイルの順序は次のとおりです。

subject=/C=***/L=*****/O=**********/CN=*********
issuer=/C=***/O=*****Inc/CN=********Secure Server CA
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
subject=/C=US/O=******** Inc/CN=********* SHA2 Secure Server CA
issuer=/C=US/O=********* Inc/OU=*********/CN=******** Global Root CA
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
subject=/C=US/O=********* Inc/OU=***********/CN=*********** Global Root CA
issuer=/C=US/O=********* Inc/OU=************/CN=******** Global Root CA
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----

それをhaproxyにデプロイしようとすると、このエラーが発生しました。

[ALERT] 188/141626 (2322) : parsing [/etc/haproxy/haproxy.cfg:32] : 'bind *:443' : inconsistencies between private key and certificate loaded from PEM file ................
[ALERT] 188/141626 (2322) : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg
[ALERT] 188/141626 (2322) : Proxy 'www-https': no SSL certificate specified for bind '*:443' at [/etc/haproxy/haproxy.cfg:32] (use 'crt').
[ALERT] 188/141626 (2322) : Fatal errors found in configuration.
Errors in configuration file, check with haproxy check.

そして私のhaproxyバージョンは:

HA-Proxy version 1.5.2 2014/07/12
Copyright 2000-2014 Willy Tarreau <[email protected]>

自己署名証明書でhaproxyを開始できます。なぜこの矛盾が発生するのですか?秘密鍵は証明書に属していると確信しています。

私は今何時間も試していますが、理由がわかりません。

助けてください!ありがとうございました!

10
Ufuk Yürük

ファイル内の証明書の順序が間違っています。中間証明書を置いているようです(つまり、Secure Server CA)最初に、サーバー証明書であることが期待されます。証明書の順序は次のとおりである必要があります。

  • サーバー証明書
  • サーバー秘密鍵(パスワードなし)
  • 中間証明書1
  • 中間証明書2

実際には、秘密鍵をどこに置くかはそれほど重要ではありません。ただし、証明書の順序は厳密にリーフからルートの順に並べる必要があります。つまり、最初にサーバー証明書、次に中間、次に親です。基本的に、最初にサーバー証明書を配置し、次にその署名者、次にその署名者を配置します...

詳細については、 ドキュメント を参照してください。

21
Holger Just