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


8

最近、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の証明書(egStartCom 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の証明書の鍵が含まれています


さて、あなたが正しく理解できたら、次の順序でファイルを作成します。1)ssl.crt; 2)sub.class1.server.sha2.ca.pem; 3)何?3番目の(そしてさらに可能な場合は)場所に追加する必要がある証明書について説明してください。
神経伝達物質

それは実際のチェーンに依存します。つまり、証明書の署名に関与するCAの数を意味します。チェーンは2つのCAでのみ構成できます。たとえば、ルートCAと1つの中間CA。ただし、ルートCAと複数の中間CAで構成される場合があります。ssl.crtファイルには、上から下にすべての中間CA証明書が含まれている必要があります。このため、ssl.crtがどのように見えるかは、特定のケースに完全に依存します。
ホルツァー2015年

証明書の署名に関与しているCAを知るにはどうすればよいですか?
神経伝達物質

2
チェーンの構築は、初心者にとっては簡単なことではないでしょう。私は通常openssl x509 -subject -issuer -noout -in certificate.of.yourdomain.crt、発行者を見るために走ります。次に、発行元の証明書をCAのWebサイトからダウンロードします。あなたの場合は、startssl.com / certsです。次に、その証明書に対してコマンドを実行します。発行がサブジェクトと等しくなるまで繰り返します。つまり、証明書は自己署名され、ルートCA証明書になります。ルートCA証明書を除くすべてのファイルをssl.crtに追加して完了します。
ホルツァー2015年

サポートをありがとう、私はチェーンを追跡し、結合された証明書を生成しました。しかし、いくつかの理由のためのQualys SSLテストは、私のホストに接続するクライアントは、に持っていることを示し、余分なダウンロード、私は間違いなく複合証明書(に含まれてきたStartComクラス1の一次中間サーバーCA、スクリーンショット)。それは変だ。
神経伝達物質

1

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

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証明書で機能します。フォーマットは同じです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.