web-dev-qa-db-ja.com

ApacheにSSLCertificateKeyFileが必要なのはなぜですか?

SSLCertificateKeyFileが必要な技術的な理由は何ですか(秘密キー)?それはどこで何のために使用されますか?

22
Tower

SSL証明書ファイルには、X.509証明書が含まれています(X.509証明書には、暗号化に使用される公開鍵が含まれています)。 SSL証明書Keyファイルには、証明書の公開鍵に対応する秘密鍵が含まれています。ウェブサーバーがandトラフィックを暗号化解除するには、公開鍵(証明書)と対応する秘密鍵の両方が必要です。 Apacheは、他の多くのサーバー製品とは異なり、キーと証明書を別々のファイルに格納します。たとえば、Javaベースの製品では、通常、Java KeyStoreファイルを使用します。これは、証明書と秘密鍵の両方を含む暗号化されたデータベースです。

22
Shadowman

通常、3つのディレクティブが含まれています。

SSLCertificateFile /opt/csw/Apache2/certs/icompany/publicCert.pem
SSLCertificateChainFile /opt/csw/Apache2/certs/icompany/chain.pem
SSLCertificateKeyFile /opt/csw/Apache2/certs/icompany/PrivateKeyCert.pem

SSLCertificateFileには、Webサイトからクライアントに配信する証明書の公開部分のみを含める必要があります。

SSLCertificateChainFileが指定されている場合、Webサーバーは関連する証明書(ルートCAへのチェーン全体を構築するため)をWebサーバー証明書に添付します。 SSLCertificateFileで指定されているように、証明書のプライベート部分をファイルに入れることもできますが、これは[〜#〜] not [〜#〜]セキュリティ上の理由から推奨されます(たとえばWebサーバーにバグがあり、バッファフローが発生し、秘密鍵が攻撃者に出力されます)。

代わりに、秘密鍵のみを別のファイルに入れ、SSLCertificateKeyFileで宣言します。

15
saxos

秘密鍵の使用を含む公開鍵暗号化の概要については、次のとおりです。

http://en.wikipedia.org/wiki/Public-key_cryptography#How_it_works

そして、TLSで使用されるすべてのステップの詳細な内訳、サーバーがhttpsトラフィックに使用するプロトコル。秘密​​鍵がどこで使用されるかを正確に示します。

http://en.wikipedia.org/wiki/Transport_Layer_Security

0
Dan Grossman