電子メールで証明書を受け取り、必要なファイルを作成してコピーしました。サーバーを再起動すると、次のエラーが発生しました。
[Wed Feb 08 13:02:06 2012] [error] Init:ファイル/home/sslcertificates/mydomain.crtからサーバー証明書を読み取れません[Wed Feb 08 13:02:06 2012] [error] SSL Library Error:218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag [Wed Feb 08 13:02:06 2012] [error] SSL Library Error:218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
誰にもアイデアはありますか?
このエラーメッセージの原因となる別の可能性のある障害の原因は次のとおりです。証明書ファイルの代わりに、証明書要求ファイルにリンクしました。ファイルの最初の行を読むと認識できます:
-----BEGIN CERTIFICATE REQUEST-----
または
-----BEGIN CERTIFICATE-----
:-)
状況:APSエンコーディングエラーを生成するStartSSL証明書を使用するApache 2.4
問題:
AH02564: Failed to configure encrypted (?) private key <domain>.com:80:0, check /etc/pki/tls/certs/ssl.key
一部のSSL発行者は、デフォルトでsslキーファイルを暗号化するため、サーバーで必ず復号化し、仮想ホストからポイントするようにしてください。
キーファイルをエコーして、暗号化されていないことを確認してください。
Mod_sslのキーファイルを復号化する
openssl rsa -in ssl.key -out ssl.key
Apache conf(httpd.conf)のSSL構成の場合、次の構成を追加してApacheを再起動します。
# SSL
<VirtualHost *:443>
ServerName gajen.com
SSLCertificateKeyFile /etc/pki/tls/certs/ssl.key
SSLCertificateFile /etc/pki/tls/certs/ssl.crt
SSLCertificateChainFile /etc/pki/tls/certs/root.ca.pem
</VirtualHost>
トラブルシューティングの場合:
tail 50 /var/log/httpd/error_log
tail 50 /var/log/httpd/ssl_error_log
私の場合、証明書が混在していました。SSLCertificateFileにはprivate_keyがあり、SSLCertificateKeyFileには証明書がありました。
エラーの最初のグーグル検索であるため、ここに残してください:これは、新しいパスフレーズで保護された証明書をインストールし、Apacheの設定をリロードするときに発生する可能性があります(Apacheを完全に再起動します)。リロード自体はエラーをスローしませんが、パスフレーズを要求せず、証明書を復号化できません。
これは、Apacheを完全に再起動してパスフレーズを要求し、復号化できるようにすることで解決できます。
* .keyファイルを再作成し、コンテンツを再度コピーして貼り付けることで問題が解決しました。
または、古いパスワードの自動入力を無効にする前に必要です。次のようなコメントルール:
#SSLPassPhraseDialog exec:/etc/ssl/passphrase-script
最近、Apache 2.4でのSSLインストール中に、同じエラー-「asn1 encoding routines」に直面しました。
すべてのファイルを正しく配置し、それらを.confファイルに正しく指定しました。トラブルシューティングの1日後、証明書を取得した後、構成に問題がないことに気付きました。
ベンダーの組み込みシステムを使用して、証明書署名要求(CSR)を作成しました。これにより、作成したキーを貼り付けることができました。ベンダーが返したSSL証明書は、プライベートキーにマッピングされたこのCSRをマッピングすることになっています。どうやら一致しませんでした。彼らが提供したSSL証明書はCSRにマッピングされません。
考えられる理由 UNIXの行末(\ r\nの代わりに\ n)/エンコード(ANSI/UTF8)/期待される改行のために、ベンダー側でKey to CSR変換が間違っています。
OpenSSLを使用して自分でCSRを作成し、ベンダーのCSR生成をバイパスしました。 動作しました。したがって、この場合、OpenSSLを使用してキーと対応するCSRを作成し、それを使用してパブリックSSLを生成しました
OpenSSLコマンド
openssl req -new -sha256 -key ~/site.com.ssl/site.com.key -out ~/site.com.ssl/site.com.csr
IISスタイルの.p7bファイルのコンテンツを電子メールに貼り付けて送信されたため、この問題が発生しました。 .pemと同様に、「----- BEGIN CERTIFICATE -----」および「----- END CERTIFICATE -----」タグがあり、コンテンツは同様の外観のbase64エンコーディングを使用します。次のように* .pemファイルに変換しました。
openssl pkcs7 -print_certs -in cert.p7b -out cert.cer
その後、Apache 2.2は満足しました。