申し訳ありませんがダンプの質問のように聞こえる場合は、SSLハンドシェイクとSSLの仕組みに関する多くの記事とドキュメントを読んでいます。私は1つの事について混乱しています。もし誰かが私を明確にすることができれば幸いです。SSLの呼び出し中にSSL秘密鍵を使用する必要があります
秘密鍵は秘密にしておくことがわかります。しかし、私のサーバDNSがexample.comで、wgetを使ってSSL呼び出しを行っている場合など、 のリクエストでも秘密鍵を指定してGET/POST呼び出しを行っています(curlまたはwgetを使用しています)。
wget --ca-cert=/etc/certs/ca.crt --certificate=/etc/certs/cert.crt --private-key=/etc/cert/private/privatekey.key --header="Content-Type: application/json" --post-data='{"key":"val"}' https://example.com/test
しかし、ブラウザからSSL Webページを開くと(例えば、ChromeからGmailを開くなど)、私有鍵を使用する必要はなく、ブラウザは秘密鍵を認識しません。ハンドシェイクブラウザでは、サーバー公開証明書& CAを取得し、乱数を暗号化してSSLセッションを開くためにサーバーに戻します。
私は愚かなものが見つからず混乱していることを知っています。 SSLリクエストで誰かが秘密鍵を使用する必要があるのか誰かに教えてもらえますか?
これは、ssl_verify_client行(nginxまたはそれに似たapache2)にコメントするか、ssl_verify_clientをオフにすると、wgetを使用して上記のssl呼び出しを行う際にキーを使用する必要はなくなりますか? – Tintu
はい、同じエンドポイントのブラウザでうまく動作するかどうかは不明ですがそうであれば、おそらく 'wget --header =" Content-Type:application/json "--post-data = '{" key ":" val "}' https:// exampleを実行するだけです。 com/test' しかし、クライアントの認証を強制する*エンドポイントをテストしている場合は、あなたが提案した変更が適切なものになります。 –
ありがとうございます。 – Tintu