SSL ソケットを介した安全な接続をシミュレートするプログラムを作成しています。クライアントが信頼されていない (したがって、そのトラストストアにない) 証明書を、インターフェイスを介して独自の裁量でインポートするようにします。これらの証明書は自己署名されています。
Received fatal alert: certificate_unknown
これまでのところ、サーバー証明書がクライアントのトラストストアに存在しないという事実のために、プログラムがクラッシュして報告するという壁にぶつかりました。
接続をローカルでシミュレートしています。すべての SSL チェックをオーバーライドするためにトラストストア マネージャーが明示的に使用されている例を見つけましたが、これは MITM 攻撃に対して広く開かれています。
トラストストア マネージャーの実装を何らかの方法でラップしてセキュリティを確保し、サーバー証明書が検証されるようにする必要があります。ここのリンクは、オープンな実装の良い例を示していますが、安全にラップする方法がわかりません。
trustmanager 実装の場合、CertificateException
(そのメソッドから) 信頼されていない証明書を見つけたときにまだ起動しますcheckServerTrusted
が、例外を処理する必要がありますが、そこからプログラムの実行を続行しますか? この安全なラッピングに取り組む方法がよくわかりません。
どうもありがとう