セキュリティのためにクライアント証明書を使用するために着信接続を必要とする webapp を作成しています。安全な接続のみを受け入れ、clientAuth=true を使用するように設定しました。
取り消された証明書を拒否することを確認しようとしましたが、CRL を確認していないようです。CRL を実際に使ってみたのはこれが初めてなので、何か間違ったことをした可能性があります...
テスト設定:
- サーバーのトラストストアに追加されたopensslにテストCAを作成しました
- CA 用の CRL を作成し、openssl に構成設定を追加して、クライアント証明書に crl 配布ポイントを含めます ( 「CRL 配布ポイントを含む openssl を使用して証明書を作成する方法」を使用します) 。
- CA を使用して 2 つのクライアント証明書を作成しました
- クライアント証明書の 1 つを取り消し、crl を更新し、配布ポイントとして指定されたアドレスに配置しました (この CRL の内容を確認したところ、取り消された証明書の ID がリストされています)。
これを設定した後、両方の証明書を使用してアプリケーションへの接続を試みましたが、一方が取り消されても両方が正常に接続できますか?
Tomcat で、クライアント証明書を受信したときに CRL 配布ポイントをチェックする設定を見逃していませんか? それがデフォルトの動作だと思っていたでしょう。
CRL の場所を tomcat のコネクタに埋め込むことができる設定へのさまざまな参照を見つけましたが、それは私が探しているものではありません。このシステムは最終的に、多数の異なる CA からの証明書を受け入れるように構成されます。