web-dev-qa-db-ja.com

ブラウザごとに証明書を注文する順序を決定する方法は?

CentOSプラットフォームでOpenSSLとApache Webサーバーを使用して相互証明書認証を実装しました。簡単な説明については、次の図を参照してください。


                ----------
              |  Root CA  |    // Self-Signed Certificate
                ----------
                    |      
                ----------
              |  SiteA CA  |  // Intermediate Certificate signed by Root CA
                ----------
               |          |
           --------    --------
         | Server1 | | Client1 |  //Certificates signed by SiteA CA
           --------    --------              

apacheの設定で次に編集しました:
チェーンcrtを作成します。

Sudo cat server.crt rootca.crt serverCA.crt > server_chain.crt 

ssl configを編集:

Sudo vi /etc/httpd/conf.d/ssl.conf

これらの4行を編集します。

SSLCertificateFile /etc/pki/tls/server.crt 
SSLCertificateKeyFile /etc/pki/tls/server.key 
SSLCertificateChainFile /etc/pki/tls/server_chain.crt 
SSLCACertificateFile /etc/pki/tls/rootca.crt

(双方向)相互認証を行うには:

SSLVerifyClient require
SSLVerifyDepth  10

次に:Apache = httpdサービスを再起動します:

Sudo service httpd restart

ブラウザのルートCA証明書とクライアント証明書を提供する必要があることがわかっているので、テスト中に次のことを行いました。

ブラウザからrootca.crtを削除し、FirefoxとChromeがクライアント証明書の確認を求めてから、サーバーが信頼されていないことを通知しました。Opera信頼されていないため、クライアント証明書情報が表示されます。

IISには、Webサーバーに最初に尋ねるオプションを指定するオプションがあると言われましたが、Apacheではそのオプションを見つけることができませんでした。
誰でも助けてもらえますか?

4
Nancy Smith

これはあなたを助けるかもしれません:
https://www.ssllabs.com/ssltest/analyze.html?d=yourwebsite.com

最近、これを使用してセキュリティをテストしました。これは、どのプロトコルが使用されているか、潜在的な脆弱性、キー長、および証明書チェーンの順序を返します。

彼らはあなたにあらゆる種類の情報を提供し、非常に有用です、私はこれを皆にお勧めします、簡単なチェックを行うだけで、無料で数分しかかかりません。

1
Martijn