web-dev-qa-db-ja.com

Apache-既存の.crtファイルから秘密鍵を生成します

私はいくつかのApacheインスタンスを自家製の生成された証明書でスムーズに実行しています。提供された証明書を使用する必要がありますが、送信したのは.crtファイルのみです。それを適切なディレクトリにコピーしようとしましたが、ウェブサーバーを再起動しようとすると、ログに記録されます:

SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch

.keyファイルは私が自分で作成したファイルであるため、これは正しいと思います。 .crtから適切な.keyファイルを生成する方法はありますか?

7
ludiegu

自己署名証明書の場合、おそらく次のようなことをしました:

$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
       -keyout mysitename.key -out mysitename.crt

そして、Apache用に次のような行を作成しました。

<VirtualHost 192.168.0.1:443>
DocumentRoot /var/www/website
ServerName www.domain.com
SSLEngine on
SSLCertificateFile /etc/ssl/crt/primary.crt
SSLCertificateKeyFile /etc/ssl/crt/private.key
SSLCertificateChainFile /etc/ssl/crt/intermediate.crt
</VirtualHost> 

CA署名付き証明書を使用すると、状況が少し変わります。自己署名証明書の作成に使用したファイルではなく、CA証明書の署名に使用したprivate.keyを使用する必要があります。

場合によっては、与えられたファイルから鍵をエクスポートできますが、与えられた実際の証明書ファイルに関する詳細情報を知る必要があります。

そこから.keyファイルを抽出する必要がある.p12ファイルを扱ってきました。

$ openssl pkcs12 -in star_qmetricstech_com.p12 -out star_qmetricstech_com.key 

ただし、SSL証明書には多くの種類のコンテナファイルがあるため、さまざまなファイル、およびどのファイルが一緒に使用されたかに特別な注意を払う必要があります。

参考文献

7
slm