-1

TLS プロトコルを使用してセキュア ソケットを開こうとしています。クライアントとサーバー間で送信されたレコードを見ると、ClientHello、ServerHello、Certificate (サーバー)、ServerHelloDone、ClientKeyExchange、および ChangeCipherSpec (クライアント) の順に進むことができます。ただし、サーバーはクライアントの Finished メッセージの解読に失敗します。次に、いくつかの通常の TCP メッセージが交換されます。最初にサーバーから送信されたレコードが Finished フラグ付きで、次にクライアントから送信された 2 つのレコード、2 番目のレコードが Finished フラグ付きで、次にサーバーから送信されたもう 1 つのレコードです。

このセットアップは以前は機能していましたが、最近サーバーの証明書を変更しました。これを考えると、暗号化されたデータの最初の部分を復号化しようとするときではなく、証明書レコードの後に​​ハンドシェイクが失敗すると予想していました。このハンドシェイク エラーは、認証されていない証明書を示していますか? そうでない場合、それは何を示していますか?アラートを受け取りませんでした。

4

1 に答える 1

-1

私が大雑把に推測すると、問題は完全にサーバー側にあると思います。秘密鍵を公開鍵 (証明書) と一緒に正しく変更しなかったため、サーバーは古い秘密鍵で復号化しようとしていると思います。あなたが説明した TLS メッセージのシーケンスは、このシナリオと一致していると思います。

于 2010-11-10T01:36:39.227 に答える