web-dev-qa-db-ja.com

haproxy-PEMファイルからSSL秘密鍵をロードできません

haproxyは起動しなくなり、エラーが表示されます

bind <ip>:443' : unable to load SSL private key from PEM file ...

証明書または構成については何も変更しませんでした。最後の起動以降、システムの通常の更新のみを行いました。

エラーを見つけるために、完全に新しい証明書(自己署名)を生成しましたが、エラーはまだ存在しています。

これは、PEMファイルの構造です。

-----BEGIN CERTIFICATE-----
MIIDXjCCAkY...
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
MIIEpgIBAAKC....
-----END RSA PRIVATE KEY-----

私も秘密鍵を変換しようとしました

openssl pkcs8 -topk8 -inform pem -in server.key -outform pem -nocrypt -out server_new.key

ただし、haproxyは引き続き同じエラーを表示します。

私は今何時間も試みていますが、理由を見つけることができません。助けてください!ありがとうございました!

更新:

問題は、ファイルアクセスに関係しています。 PEMファイルは/data/ssl/domainname/domainname.pemに保存されました。ファイルの権利は大丈夫です。 PEMファイルを/ etc/haproxyに移動すると、すべて問題ありません。

31
efdev1234

私がCentOSで実行していた問題は、SELinuxが邪魔になっていたことでした。 SELinuxに問題があるかどうかをテストするには、root [setenforce 0]として次を実行してから、haproxyを再起動してください。動作する場合、SELinuxの問題があります。 (SELinuxを再度有効にして、setenforce 1コマンドを使用して根本的な問題の修正を試みることができます)。

/ etc/haproxy/certificatesフォルダーに証明書があるので、次のコマンドはファイルrestorecon -v -R /etc/haproxy(OSとSELinuxの設定によってはこれが機能する場合と機能しない場合があります)に対して適切なアクセス許可を取得するために機能しました。

16
Tim Ludwinski

証明書とキーファイルがpemに表示される順序は重要です。以下を使用して、pemファイルを作成します。

cat example.com.crt example.com.key > example.com.pem
31
Justin Hourigan

このエラーも発生しました。髪を引き裂く前に、秘密鍵からパスフレーズを削除してみてください。それは私のために問題を解決しました。 HAProxyは再起動時にパスワードを要求するはずですが、私の場合は 'Sudo /etc/init.d/haproxy restartを使用していません。

パスワードを削除するには、「openssl rsa -in [PRIVATE_KEY_FILE] -out nopassphrase.key」を試してください。

パスフレーズは必要ですか?以下のリンクに議論があります。 https://security.stackexchange.com/questions/70495/ssl-certificate-is-passphrase-necessary-and-how-does-Apache-know-it

4
brunettdan

私にとって、問題は結合PEMファイルの次の行が原因でした。

----- ENDCERTIFICATE ---------- BEGIN RSA PRIVATE KEY -----

分割した後、HaProxyを起動してロードすることができます。

* -----証明書の終了-----

----- RSAプライベートキーの開始----- *

それが役に立てば幸い

T

4
TBONE

私にとっての問題は、キーの先頭にある奇妙なキャラクターでした。

この文字はcatedしたときに表示されませんでした。文字が<feff>別名 TF-8 BOM(バイトオーダーマーク) 。 vimでファイルを開いたときにのみ表示されました。

私はこれが非常に一般的であるとは期待していませんが、うまくいけば誰かの頭痛を軽減できます。

0
Peter Klipfel

参考までに、私の場合、「----- BEGIN RSA PRIVATE KEY -----」シーケンスの前にスペース文字があり、それがpemファイルを壊しました。

0