Apache SSLエラー:秘密鍵が見つかりません


8

Ubuntu 14.04でApacheを実行していて、SSLを実装しようとしています。どんな助けでも大歓迎です。

default-ssl.confには以下が含まれます。

SSLCertificateFile      /etc/apache2/ssl/domain.crt 
SSLCertificateKeyFile   /etc/apache2/ssl/domain.csr

Apacheを再起動すると、/ var / log / apache2 / error.logのエラーメッセージは次のようになります。

[Sun Feb 01 19:31:06.443226 2015] [ssl:error] [pid 30927] AH02203: Init: Private key not found
[Sun Feb 01 19:31:06.443408 2015] [ssl:error] [pid 30927] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Sun Feb 01 19:31:06.443424 2015] [ssl:error] [pid 30927] SSL Library Error: error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 er$
[Sun Feb 01 19:31:06.443435 2015] [ssl:error] [pid 30927] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Sun Feb 01 19:31:06.443447 2015] [ssl:error] [pid 30927] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Ty$
[Sun Feb 01 19:31:06.443458 2015] [ssl:error] [pid 30927] SSL Library Error: error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib
[Sun Feb 01 19:31:06.443468 2015] [ssl:error] [pid 30927] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Sun Feb 01 19:31:06.443479 2015] [ssl:error] [pid 30927] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Ty$
[Sun Feb 01 19:31:06.443487 2015] [ssl:emerg] [pid 30927] AH02311: Fatal error initialising mod_ssl, exiting. See /var/log/apache2/error.log for more inf$

この問題をどのように解決しましたか?
Srinivas 2015年

回答:


6

警告: 秘密鍵をインターネットに投稿しないでください。別のコンピュータ、ワークステーションなどにコピーしないでください。できるだけプライベートにしておく必要があります。

SSLCertificateKeyFileには秘密鍵が必要です。このキーは通常、CSRの前に、または同時に生成されます。次を含む行で始まるファイルを検索します。BEGIN PRIVATE KEY

CSR(証明書署名要求)は、証明書への署名を要求する場合にのみ必要です。その後は破棄できます。

秘密鍵を紛失した場合は、新しい秘密鍵を生成してから、新しいCSRを生成し、CA(認証局)にCSRに再度署名するよう依頼してください。


1

ここに問題があります:

SSLCertificateKeyFile   /etc/apache2/ssl/domain.csr

誤ってここに証明書署名要求(CSR)ファイルを入力しました。代わりに、CSRの生成に使用した秘密鍵ファイルをそこに置く必要があります。その秘密鍵ファイルはパスワードで保護しないでください。そうしないと、Apacheを(再)起動するたびにパスワードを入力する必要があります。

これからの世代の利益のために、OpenSSLでCSR-sを生成する方法の短い要約を次に示します(Ubuntuのドキュメントから適切なチュートリアルを利用できます)。

1)サーバーキーを生成します。

openssl genrsa -des3 -out server.key 2048

これには、パスワードを指定する必要があります。

2)パスワードなしの秘密鍵を作成し、プロンプトが表示されたら上記で使用したパスワードを入力します。

openssl rsa -in server.key -out server.key.insecure
mv server.key server.key.SECURE
mv server.key.insecure server.key

3)パスワードなしの秘密鍵でCSRを生成します。

openssl req -new -key server.key -out mydomain.org.csr

ここで、 "mydomain.org"はドメインです。インタラクティブにいくつかの質問に答える必要があります。完了したら、mydomain.org.csrファイルを認証局に送信します。*.crtファイルまたはファイルが返され*.pemます。彼らがあなたにくれたとしましょうmydomain.org.crt。それを証明書としてインストールし、パスワードなしのキーファイルをキーとしてインストールします(場所はUbuntu 14.04で有効です。他のシステムのどこかにある可能性があります。Apache2のドキュメントを確認してください)。

sudo cp mydomain.org.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private/mydomain.org.key

そして最後に、Apache2の設定を編集します(可能性がありますdefault-ssl.conf):

    SSLEngine on
    SSLCertificateFile      /etc/ssl/certs/mydomain.org.crt
    SSLCertificateKeyFile   /etc/ssl/private/mydomain.org.key

お役に立てれば。


1

誰かがすでにこの質問に回答していることは知っていますが、このエラーが発生したときに何が起こったかを他の人に知らせたいと思っていました。

私の原因では、証明書バンドルにSSLCertificateChainFileではなく誤ってSSLCertificateFileがありました。このエラーが引き続き表示され、ループが発生しました。私は自分の秘密鍵が間違っていると考え続けました。


0

私はこの投稿が古いことを知っていますが、これはエラーに関するGoogle検索の最初のリンクであるため、さらに追加する必要があると考えました-「Init:Private key not found」

これが以前に起こったのを見たことがあり、それが悪い秘密鍵であることが判明しました。straceを使用して、Apacheがロードしようとした最後の秘密鍵を追跡しました。sslディレクトリとhttpd.confから削除すると、Apacheは問題なく再起動しました。

不正なSSLキー:-rw-r ----- 1ルート754974732 1.7K 1987年5月31日/var/cpanel/ssl/installed/keys/c129e_4ed23_b7c0d7f821952179fc8006506ab06b72.key

不正なキーを追跡するために使用されるコマンド:strace -f -v -s 1024 -o strace.log service httpd start

環境:OS:CentSO 6.9コントロールパネル:cPanel 11.64 Apacheバージョン2.2

tl;dr: Find the bad private key that Apache is trying to load and backup it up and remove it from Apache's configuration file.

これが役に立てば幸いです!


サーバー障害へようこそ。あなたの投稿は改善されたフォーマットを使用できます。ある悪いSSLキー:...おそらく段落の引用は?また、TL; DRをとしてフォーマットする必要ありませんcode。貢献してくれてありがとう。
私はモニカを2017

0

私はこのホイールを少し回転させていましたが、完全な秘密鍵ファイルがあることを確認してください。私は私の行からいくつかの行が欠落していたことがわかりました。

秘密鍵を確認するコマンドは次のとおりです。

openssl rsa -in /etc/httpd/certs/server.key -check

/etc/httpd/certs/server.keyをサーバーの秘密鍵へのフルパスに置き換えます。問題がなければ、次のように表示されます。

RSA key ok

それが誰かを助けることを願っています、そして私のサーバーはApache / 2.4.6を備えたCentOS 7.6でした

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.