HTTPS通信を確認することは「通信路が暗号化されていて、証明書が正しく信頼できるかをチェックする技術」です
業務システムやAPIクライアント、バックエンドサービスを開発する読者のみなさんにとって、 「HTTPSで通信しているつもりが、実は証明書検証を無効化していた」というのは、 かなり危険な状態です。
ここでは、プログラミング初心者の方にも分かるように、 C#で HTTPS通信を確認するユーティリティをステップバイステップで解説し、 実務でそのまま使えるテンプレートとしてまとめていきます。
HTTPS通信の基本をかみ砕いて理解する
HTTPとHTTPSの違い
- HTTP 通信内容が暗号化されていません。途中で盗み見られたり、改ざんされたりする可能性があります。
- HTTPS HTTPにTLS(SSL)による暗号化を追加したものです。 通信内容が暗号化され、サーバー証明書によって「相手が本物かどうか」を確認できます。
HTTPSでは次のことが行われます。
- サーバーが証明書を提示する
- クライアントが証明書の有効期限・発行元・ホスト名などを検証する
- TLSセッションが確立され、暗号化された通信が行われる
「HTTPS通信を確認する」とは、 このプロセスが正しく行われているかをコード側からチェックすることです。
