WebサーバーでSSLページを提供していますが、質問があります。 SSLCACertificateFileとSSLCertificateChainFileの違いは何ですか?
SSLCertificateChainFileを使用すると、日本の携帯電話ブラウザから警告が表示されますが、PCブラウザ(IE、FFなど)を使用すると問題はありませんでした。一方、SSLCACertificateFileは両方のブラウザーで問題を引き起こしませんでした。
ブラウザがApacheに接続するときに違いはありますか?
SSLCertificateChainFileは正しい選択オプションでしたが、このディレクティブは Apache 2.4.8で廃止 になりました。このディレクティブにより、リストされたファイルが、証明書とともに接続するクライアントに送信されます。
SSLCACertificateFile (以降「CACert」)はSSLCertificateChainFile(以下「Chain」)に優先し、さらに問題の証明書の使用を許可して署名client証明書。この種の認証は(少なくとも現時点では)非常にまれであり、使用していない場合、Chainの代わりにCACertを使用して機能を拡張する理由はありません。逆に、追加機能に害はない、とCACertはすべてのケースをカバーしていると主張することができます。両方の引数が有効です。
言うまでもありませんが、証明書のベンダーに問い合わせると、彼らは常にCACert over Chainをプッシュします。 ;)
実際には、両方が有効なオプションである可能性があります。
SSLCertificateChainFileを使用して、公開認証局(VeriSign、RapidSSLなど)によって署名された証明書を公開します。
SSLCACertificateFileを使用して、クライアント証明書を発行でき、選択した一部のユーザーに配布できる「プライベート」CAを提供します。これらのclient
証明書は、実際には認証(基本的なパスワード認証と比較して)に優れており、通常、パブリックCAによる配布は必要ありません(したがって、お金を節約できます)。
したがって、Webサイトの一部に安全な認証を追加する場合は、次の操作を行います。
<Directory /var/www/html/authorized>
SSLVerifyClient require
SSLVerifyDepth 5
SSLOptions +StrictRequire
SSLUserName SSL_CLIENT_S_DN_CN
SSLRequireSSL
</Directory>
簡単な説明のためにSSLUserName SSL_CLIENT_S_DN_CN
は、x509 '/ OU = Foo/CN = ...'サブジェクト全体に対して、認証されたユーザー名を証明書のCommonNameに設定します。