2015-01-14 7 views
21

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に格納されていました。ファイルの権利はOKです。 PEMファイルを/ etc/haproxyに移動すると、すべてが正常です。

答えて

7

私がCentOS上で実行していた問題は、SELinuxがやっていたことでした。 SELinuxが問題になっているかどうかをテストするには、rootとして次のコマンドを実行してください:setenforce 0その後、haproxyを再起動してみてください。動作すれば、SELinuxの問題があります。 (今すぐSELinuxを再度有効にし、コマンドsetenforce 1で根本的な問題を解決してください)。

証明書を/ etc/haproxy/certificatesフォルダに格納しているので、次のコマンドはファイルの正しいアクセス権を取得するために働いていました(OSとSELinuxの設定によっては動作しないかもしれません)。

18

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

cat example.com.crt example.com.key > example.com.pem 
+1

が、これは私のPEMファイルの順番でお役に立てば幸いです...しかし、おかげで – efdev1234

+1

この答えは私の問題を解決しました。同じエラーでありがとう!私はファイルを連結するのを忘れてしまった。 – Eye

+0

PEMファイルの公開証明書の前にある私有鍵で作業しているので、これは変更されている可能性があります。私は同じエラーが発生していましたが、私のケースではDockerでHAProxyを実行していたが、HAProxyがPEMを見ることができるようにボリュームをコンテナに追加するのを忘れていたからだ。 – NickRamirez

0

私にとっての問題は、キーの先頭に奇妙な文字でした。

文字が<feff>(別名UTF-8 BOM (Byte Order Mark))であるため、catがファイルを編集したときにこの文字が表示されませんでした。 vimでファイルを開いたときにだけ表示されました。

私はこれが非常に一般的であるとは思わないでしょうが、うまくいけば誰かが頭痛を覚えるでしょう。

4

このエラーも発生しました。あなたは、あなたの髪を切り取る前に秘密鍵からパスフレーズを削除してみてください。それは私の問題を解決しました。私はHAProxyは、再起動時にパスワードの入力をお願いすることになっていると思いますが、それは使用して私の場合にはなかった「sudoを を試してみてください、パスワードを削除するには

を再起動/etc/init.d/haproxy」opensslのRSA -in [PRIVATE_KEY_FILE] -out nopassphrase.key '

パスフレーズが必要ですか?下のリンクにディスカッションがあります。問題が組み合わさPEMファイルに次の行によって引き起こされた私にとって https://security.stackexchange.com/questions/70495/ssl-certificate-is-passphrase-necessary-and-how-does-apache-know-it

2

----- END CERTIFICATEの---------- RSA PRIVATE KEYをBEGIN ---- - 私はそれを分割した後

私はHaProxyを開始することができますし、[OK]を、それをロードします。

* ----- END CERTIFICATE -----の

----- BEGIN RSA PRIVATE KEY- ---- *

は、それはあなたが私の質問に見ることができるよう

T

関連する問題