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ではそのオプションを見つけることができませんでした。
誰でも助けてもらえますか?
これはあなたを助けるかもしれません:
https://www.ssllabs.com/ssltest/analyze.html?d=yourwebsite.com
最近、これを使用してセキュリティをテストしました。これは、どのプロトコルが使用されているか、潜在的な脆弱性、キー長、および証明書チェーンの順序を返します。
彼らはあなたにあらゆる種類の情報を提供し、非常に有用です、私はこれを皆にお勧めします、簡単なチェックを行うだけで、無料で数分しかかかりません。