web-dev-qa-db-ja.com

Apacheの非推奨のSSLCertificateChainFileディレクティブ(AH02559)

最近、Apacheを2.2から2.4にアップグレードしましたが、SSLCertificateChainFileディレクティブを廃止する方法がわかりません。

エラー:

me@jessie:~$ Sudo Apache2ctl configtest 
AH02559: The SSLCertificateChainFile directive (/etc/Apache2/sites-enabled/https.conf:103) is deprecated, SSLCertificateFile should be used instead
Syntax OK

私の現在の設定:

SSLCertificateFile    /etc/Apache2/cert/ssl.crt
SSLCertificateKeyFile /etc/Apache2/cert/ssl.key
SSLCertificateChainFile /etc/Apache2/cert/sub.class1.server.sha2.ca.pem
SSLCACertificateFile /etc/Apache2/cert/ca.pem

証明書はStartCOMによって署名されています。マニュアルによれば、チェーン全体はSSLCertificateFileディレクティブで指定された1つのファイルにあるはずですが、このファイルに連結する必要のあるキーと順序はわかりません。

8

これをApacheの設定で使用しているとすると、

SSLCertificateFile    /etc/Apache2/cert/ssl.crt
SSLCertificateKeyFile /etc/Apache2/cert/ssl.key

/etc/Apache2/cert/ssl.crtファイルには

  1. 証明書yourdomain.com
  2. ルートCAによって署名された最初の中間CAの証明書(例:StartCom Class 1 Primary Intermediate Server CA)
  3. 最初の中間CAによって署名された2番目の中間CAの証明書(証明書チェーンに2番目の中間CAがある場合)

すべての中間CAの証明書をcrtファイルに入れる必要があります。証明書の証明書チェーンに応じて、呼び出されるCAの数は異なります。

ルートCAはクライアントのトラストストアにある必要があるため、ルートCAを追加する必要さえありません。そうしないと、クライアントにエラーページが表示されます。また、チェーンに追加すると、追加のオーバーヘッドになります。新しいSSLセッションごとに転送する必要があるため、SSL接続を確立します。実際、ほとんどのクライアントには中間CA証明書もインストールされていますが、インストールされていないクライアントもあります。携帯電話には多くの中間CA証明書がないため、間違いなく追加します。

/etc/Apache2/cert/ssl.keyファイルは同じままです。つまり、yourdomain.comの証明書のキーが含まれます

8
fholzer

さて、ついに最近それを理解し、詳細を回答フォームに投稿することにしました。

StartSSLは、証明書を取得するときにZipアーカイブに証明書を配置し、そこに含まれるアーカイブがたくさんあるため、特に興味深いのはApacheServer.Zip、Apache> 2.4互換フォーム。 Apacheフォルダー内のファイルは次のとおりです。

1_root_bundle.crt
2_myhost.tld.crt

これらの証明書の両方からSSLCertificateFileを抽出する必要がありますが、この順序で:

cat 2_myhost.tld.crt 1_root_bundle.crt > myhost.tld_combined.crt

したがって、サイトの設定では次のようになります。

    SSLCertificateFile    /etc/Apache2/cert/myhost.tld_combined.crt
    SSLCertificateKeyFile /etc/Apache2/cert/myhost.tld.key

Qualys SSL Test を含め、すべてが良好です。

これは、StartCom StartSSLとWoSign証明書で機能します。フォーマットは同じです。

1