私は、通常のSSLハンドシェイク中にクライアントがサーバーの証明書を受け取り、それを検証した後、サーバーの公開キーを使用してセッションキーを暗号化することを知っています。クライアントはSSLハンドシェイクを行うために事前に保存されたサーバの証明書をどのように使用できますか?
Linux上のC言語でSSLクライアントを作成したいと思います。 SSLハンドシェーク中、サーバの証明書を待つ必要はなく、以前にダウンロードされたサーバの公開鍵で暗号化されたセッション鍵を送信します。
私はOpenSSLの使い方を学んでいます。私はここでdo-handshakeの部分が必要です。
ありがとうございました。なぜこれを行うのですか? ISPまたはゲートウェイは証明書を検閲し、証明書の名前に従って接続をブロックできます。
なぜですか?どのように証明書を送信しないようにサーバーに指示しますか?あなたは変更された証明書をどのように扱いますか?私には悪い考えのように聞こえますが、これは[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)でしょうか? –
これを行うには、クライアントコードとサーバーコードの両方にアクセスする必要があります。実装されると、このハンドシェイクはクライアントとサーバーの間でのみ機能します。つまり、サーバーは他のクライアントと通信できませんでした。 – mnistic
"*クライアントがSSLハンドシェイクを行うためにあらかじめ保存されているサーバの証明書を使用するにはどうすればよいですか?*"サーバをクライアントに送信したものを無視して、 – alk