SSL の使用に秘密鍵と証明書を使用するように Apache をセットアップしようとしています。問題は、鍵と crt ファイルが一致しないと Apache がどうにかして判断することです。
[Thu Aug 01 11:35:18 2013] [warn] RSA server certificate wildcard CommonName (CN) `*.-----.nl' does NOT match server name!?
[Thu Aug 01 11:35:18 2013] [debug] ssl_engine_init.c(846): Configuring RSA server private key
[Thu Aug 01 11:35:18 2013] [error] Unable to configure RSA server private key
[Thu Aug 01 11:35:18 2013] [error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
このエラーの後、キーと証明書が一致するかどうかを確認しました:
$ openssl x509 -noout -modulus -in server.crt | openssl md5
$ openssl rsa -noout -modulus -in server.key | openssl md5
結果は同じで、鍵と証明書は一致しているようです!? 私のサイト構成には、SSL セットアップ用の次のものが含まれています。
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
証明書は、私が顧客のために使用する自己作成 CA によって署名されています。現時点では、Java (および Chrome/Firefox/IE/Safari/... はすべて証明書とキーを受け入れます) を介して HTTPS サイトをホストしていますが、パフォーマンスは私が望むほどではありません。 Apache に切り替えたいと考えています。しかし、Apache が証明書とキーが一致しないと言う理由がわかりません。私はこのエラーについて多くのことをグーグルで検索しましたが、多くの結果が見つかりましたが、私の状況を表すものも、問題の有効な解決策を提供するものもありません. 私が独自の CA を使用する理由は、信頼ベースのネットワークに数百 (そして数え切れないほど) の証明書を使用しているためです。
編集:問題はopensslに関連しているようです。同じ最終エラーで次をテストしました:
..............:~$ openssl s_server -cert server.crt -key server.key
140518544565920:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1319:
140518544565920:error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error:tasn_dec.c:831:
140518544565920:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:751:Field=n, Type=RSA
140518544565920:error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib:rsa_ameth.c:115:
Using default temp DH parameters
Using default temp ECDH parameters
error setting private key
140518544565920:error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch:x509_cmp.c:331:
誰かが私が間違っていることを正しい方向に向けることができますか?
Web サーバー (すべてのブラウザーで受け入れられる) によって直接使用される使用済み JKS を PEM 証明書と秘密鍵に再トランスコードしましたが、openssl から同じエラーが発生した場合でも:
openssl s_server -debug -cert server.crt -key server.key
Using default temp DH parameters
Using default temp ECDH parameters
error setting private key
140157841004192:error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch:x509_cmp.c:331:
すべてのブラウザがキーと証明書の組み合わせを受け入れ、openssl がそれらを一緒に使用することを拒否する可能性はありますか?