この記事は、 「ネットワーク初級編|通信の仕組みをゼロから学ぶ」 の第24回です。
前回は、NATとNAPTを使ってプライベートIPアドレスの端末が インターネットへ接続する仕組みを学びました。 今回は、Web通信で使われるHTTPとHTTPSの違いを解説します。
HTTPとHTTPSの違いとは?暗号化・証明書・通信の仕組みを初心者向けに図解
WebサイトのURLには、http://で始まるものと
https://で始まるものがあります。
HTTPSは単に「HTTPへSを付けたもの」ではなく、通信内容を暗号化し、
接続先を確認し、途中での改ざんを検知する仕組みを加えたWeb通信です。
ログイン画面やショッピングサイトで、パスワードやクレジットカード情報を入力する場面を考えてみましょう。 通信内容がそのまま読める状態では、途中で情報を盗み見られる危険があります。
そこで現在のWebサイトでは、通信を保護するためにHTTPSが広く使われています。 この記事では、HTTPの基本、HTTPSが守る3つの要素、TLSと証明書の役割、通信開始までの流れを順番に学びます。
この記事を読み終えるとできること
- HTTPとHTTPSの役割を区別できる
- HTTPSが必要な理由を説明できる
- TLSとサーバー証明書の役割を説明できる
- ポート番号80と443の違いを理解できる
- 証明書エラーが表示される理由を考えられる
- 南京錠マークの正しい意味を説明できる
HTTPとHTTPSの違いを先に結論で理解する
HTTPはWebのデータをやり取りするルールです。
HTTPSは、そのHTTP通信をTLSで保護し、暗号化・相手確認・改ざん検知を行う仕組みです。
| 比較項目 | HTTP | HTTPS |
|---|---|---|
| URLの始まり | http:// |
https:// |
| 主な役割 | Webデータを要求・応答する | HTTP通信を安全に行う |
| 通信内容 | 原則として暗号化されない | TLSによって暗号化される |
| 接続先の確認 | HTTP自体には証明書確認がない | サーバー証明書を確認する |
| 改ざんへの対策 | HTTP自体には保護機能がない | 通信途中の改ざんを検知する |
| 代表的なポート番号 | TCP 80 | TCP 443 HTTP/3ではUDP 443が使われる |
HTTPSは、HTTPとは別のWebページ形式ではありません。
ブラウザとWebサーバーがHTTPの要求・応答を行う点は同じです。 大きな違いは、その通信を安全な経路の中で行うことです。
HTTPとは何か
HTTPは、Hypertext Transfer Protocolの略です。 ブラウザとWebサーバーが、Webページのデータをやり取りするための通信ルールです。
ブラウザでWebサイトを開くと、ブラウザはWebサーバーへ 「このページを送ってください」という要求を送ります。 Webサーバーは要求を処理し、HTML、画像、CSS、JavaScriptなどのデータを返します。
HTTPの基本は要求と応答
レスポンス:ページの内容と処理結果を返します
HTTPリクエストの簡単なイメージ
Host: example.com
User-Agent: Browser
Cookie: session=xxxxxxxx
実際のHTTPリクエストには、要求するページ、接続先のホスト名、ブラウザの情報、 Cookieなどが含まれることがあります。 HTTPは、これらの情報をどのような形式で送るかを決めています。
HTTPの役割は、Webデータの要求方法と応答方法を決めることです。 HTTPそのものは、通信経路の暗号化を目的としたプロトコルではありません。
HTTP通信にどのような危険があるのか
暗号化されていないHTTP通信では、通信経路上でデータを取得できる第三者に、 内容を読まれたり書き換えられたりする可能性があります。
暗号化されていないHTTP通信のイメージ
盗み見
ID、パスワード、検索内容、入力フォーム、Cookieなどを読まれる危険があります。
改ざん
利用者が送るデータや、サーバーから返るページを途中で書き換えられる危険があります。
なりすまし
正しいサーバーと思って接続した相手が、本物であることをHTTPだけでは確認できません。
こうした問題へ対処するため、HTTP通信をTLSという仕組みで保護したHTTPSが使われます。
HTTPSとは何か
HTTPSは、Hypertext Transfer Protocol Secureの略です。 HTTPによるWeb通信を、TLSというセキュリティ技術で保護します。
HTTPS通信のイメージ
SSLとTLSは何が違うのか
HTTPSの説明では「SSL化」という言葉を見かけることがあります。 SSLはTLSより前に使われていた技術で、現在のHTTPSでは主にTLSが使われます。
ただし、一般的な会話やサービス名では、TLSを含めて「SSL証明書」「SSL通信」と呼ぶことがあります。 初心者の段階では、現在のHTTPSを実際に保護している仕組みはTLSと覚えましょう。
HTTPSが守る3つの要素
HTTPSの役割を理解するときは、次の3つに分けると分かりやすくなります。
1.機密性
通信内容を暗号化し、途中で取得されても簡単には読めないようにします。
2.認証
証明書を使い、接続しているWebサーバーが正しい相手かを確認します。
3.完全性
通信途中でデータが書き換えられていないかを確認します。
機密性:通信内容を読まれにくくする
ブラウザとWebサーバーは、通信開始時に安全な方法で暗号化に必要な情報を共有します。 その後のHTTPリクエストとHTTPレスポンスは暗号化されます。
認証:接続先が正しいサーバーか確認する
Webサーバーはブラウザへサーバー証明書を提示します。 ブラウザは、証明書の有効期限、アクセス先のドメイン名、信頼できる認証局から発行されているかなどを確認します。
完全性:途中で書き換えられていないか確認する
HTTPSでは、受信したデータが送信時の内容から変化していないかを確認できます。 途中で不正に書き換えられた場合、正常な通信として受け入れない仕組みがあります。
HTTPS通信が始まるまでの流れ
HTTPSでは、いきなりWebページの内容を送るのではありません。 最初にTLSを使って、安全に通信するための準備を行います。
- ブラウザがHTTPSで接続を開始する ブラウザはWebサーバーへ接続し、利用できるTLSの方式などを知らせます。
- Webサーバーが証明書を提示する Webサーバーは、サーバー証明書と通信に必要な情報をブラウザへ返します。
- ブラウザが証明書を確認する 証明書の有効期限、ドメイン名、発行元などを確認します。
- 暗号化に使う鍵を安全に共有する ブラウザとWebサーバーは、以後の通信を暗号化するための共通鍵を作ります。
- 暗号化されたHTTP通信を行う TLSの準備が完了した後、HTTPリクエストとHTTPレスポンスを暗号化して送受信します。
HTTPS接続の全体像
実際のTLSハンドシェイクでは複数のメッセージが交換されます。 初級編では、証明書を確認し、暗号化用の鍵を共有してから、HTTP通信を始めると理解できれば十分です。
サーバー証明書とは何か
サーバー証明書は、WebサーバーがHTTPS通信を行うときにブラウザへ提示する電子的な証明書です。 証明書には、主に次のような情報が含まれます。
証明書に含まれる主な情報
- 証明書が対象とするドメイン名
- 証明書の有効期間
- 証明書を発行した認証局
- 公開鍵に関する情報
- 証明書を検証するための署名
ブラウザが確認する主な項目
- アクセス先のドメイン名と一致するか
- 有効期限が切れていないか
- 信頼できる認証局へつながるか
- 証明書が不正に変更されていないか
- 安全なTLS接続を確立できるか
認証局とは何か
認証局は、証明書を発行し、その証明書が信頼できるかを確認するための基盤を提供する組織です。 ブラウザやOSには、信頼する認証局の情報があらかじめ登録されています。
ブラウザは、Webサーバーの証明書から信頼できる認証局まで、証明書のつながりを確認します。 このつながりを証明書チェーンと呼びます。
サーバー証明書は「このサイトの運営者が絶対に安全」と保証するものではありません。 主に、アクセス先のドメインと証明書の対応や、暗号化通信に必要な公開鍵の正当性を確認するために使われます。
HTTPSで暗号化される情報・見える情報
HTTPSを使うと、HTTPリクエストやHTTPレスポンスの内容はTLSによって保護されます。 ただし、通信に関するすべての情報が完全に見えなくなるわけではありません。
| 情報 | HTTPS通信での扱い |
|---|---|
| ページの本文 | 暗号化される |
| 入力フォームの内容 | 暗号化される |
| Cookieや認証情報 | HTTPデータとして暗号化される |
| URLのパスやクエリ | HTTPリクエスト内に含まれるため暗号化される |
| 送信元・宛先IPアドレス | パケットを届けるため、通信経路上で確認できる |
| 利用するポート番号 | 通信制御に必要なため確認できる |
| 接続先のドメイン名 | DNS問い合わせやTLS接続情報などから分かる場合がある |
HTTPSは通信内容を保護しますが、利用者の端末がマルウェアに感染している場合や、 偽サイトへ自分で情報を入力した場合まで防げるわけではありません。
ポート番号80と443の違い
Webサーバーは、受信した通信をどのサービスへ渡すか判断するためにポート番号を使います。 HTTPとHTTPSでは、一般的に次のポート番号が使われます。
| 通信 | 代表的なポート | 特徴 |
|---|---|---|
| HTTP | TCP 80 | 暗号化されていないHTTP通信で一般的に使用 |
| HTTPS | TCP 443 | TLSで保護されたHTTP通信で一般的に使用 |
| HTTP/3 | UDP 443 | QUICを利用し、TLS 1.3を組み込んだWeb通信 |
URLでポート番号を省略した場合、ブラウザは通信方式に応じた標準ポートを使います。
たとえば、https://example.com/では通常443番ポートが使われます。
ポート番号は変更できます。HTTPが必ず80番、HTTPSが必ず443番という意味ではありません。 ただし、一般的なWebサイトでは標準ポートが使われるため、URLへ明示する必要がありません。
証明書エラーが表示される主な原因
HTTPS接続時に証明書を正常に確認できないと、ブラウザは警告画面を表示します。 主な原因は次のとおりです。
1.証明書の有効期限切れ
証明書には有効期間があります。更新されていない証明書は信頼できないものとして扱われます。
2.ドメイン名の不一致
アクセスしたホスト名と、証明書に登録されたドメイン名が一致しない場合です。
3.信頼できない発行元
自己署名証明書など、ブラウザが信頼する認証局へつながらない場合があります。
4.証明書チェーンの不備
中間証明書が不足し、信頼できる認証局まで確認できない場合があります。
5.端末の日時が誤っている
PCやスマートフォンの日付・時刻が大きくずれていると、有効期間の判定に失敗します。
6.通信が途中で検査されている
企業のプロキシやセキュリティ製品がHTTPS通信を検査し、独自の証明書を使う場合があります。
証明書警告を安易に無視してはいけません。
管理された社内システムなど、理由が明確な場合を除き、警告が表示されたサイトへ パスワードや個人情報を入力しないようにします。
HTTPSが使われていても安全とは限らない
HTTPSは、利用者と接続先Webサーバーの間の通信を保護します。 しかし、Webサイトの内容や運営者の行動まで保証するものではありません。
HTTPSが保証する範囲
- フィッシングサイトでもHTTPSを利用できる
- サイト運営者が入力情報を不適切に扱う可能性は残る
- ダウンロードしたファイルが安全とは限らない
- URLのスペルが正しいかは利用者自身でも確認する必要がある
ブラウザの接続表示は、主に「この接続が暗号化され、証明書を確認できた」ことを示します。 「このサイトに書かれている内容はすべて正しい」という合格マークではありません。
HTTPとHTTPSに関するよくある勘違い
HTTPSは通信経路を保護しますが、Webサイトの内容や運営者の信頼性までは保証しません。 偽サイトでもHTTPSを利用できます。
HTTPSが主に保護するのは、ブラウザとWebサーバー間を移動している通信データです。 サーバーや端末へ保存されたデータの保護は、別の対策が必要です。
IPパケットを届けるため、送信元と宛先のIPアドレスは通信経路上で必要です。 HTTPSは主にHTTPデータの中身を暗号化します。
HTTPSでも、Webページを要求・応答する基本ルールはHTTPです。 そのHTTP通信をTLSで保護したものがHTTPSです。
ブラウザはサーバー証明書を検証し、暗号化に使う鍵を共有した後、 HTTPリクエストとHTTPレスポンスを暗号化して送受信します。
理解度チェック
記事の内容を確認するため、次の5問に答えてください。 解答を見る前に、一度自分で考えてみましょう。
問題1.HTTPとHTTPSの違いとして最も適切なものはどれですか。
- HTTPは画像専用、HTTPSは文字専用の通信である
- HTTPSはHTTP通信をTLSで保護する
- HTTPはインターネット用、HTTPSは社内ネットワーク専用である
- HTTPSではIPアドレスを使わない
解答を見る
HTTPSは、HTTPの要求・応答をTLSで保護し、暗号化、認証、完全性確認を行います。
問題2.HTTPSが提供する3つの主な保護を答えてください。
解答を見る
通信内容を暗号化し、接続先を証明書で確認し、途中でデータが改ざんされていないかを確認します。
問題3.HTTPとHTTPSで一般的に使われるポート番号の組み合わせはどれですか。
- HTTP:22、HTTPS:23
- HTTP:53、HTTPS:67
- HTTP:80、HTTPS:443
- HTTP:443、HTTPS:80
解答を見る
HTTPではTCP 80、HTTPSではTCP 443が一般的です。HTTP/3ではUDP 443が使われます。
問題4.HTTPS接続でサーバー証明書を確認する目的は何ですか。
解答を見る
接続先のドメイン名と証明書が対応しているか、有効期限内か、 信頼できる認証局へつながるかなどを確認し、接続先を認証するためです。
問題5.「HTTPSのWebサイトなら必ず信頼できる」という説明は正しいですか。
解答を見る
HTTPSは通信経路を保護しますが、サイトの内容や運営者の信頼性を保証するものではありません。 URLやサイト内容も確認する必要があります。
実践演習:HTTPS通信を読み取ろう
次の状況を読み、どこまでHTTPSで保護されるのかを考えてみましょう。
オンラインショップへログインする通信
課題1.HTTPSで保護される情報を選ぶ
次のうち、HTTPデータとして暗号化されるものを選んでください。
- ログインフォームへ入力したパスワード
- Cookie
- アクセスしたURLのパス
- 宛先IPアドレス
- 宛先ポート番号
課題1の解答を見る
暗号化されるもの:パスワード、Cookie、URLのパス
宛先IPアドレスとポート番号は、パケットを届け、通信を識別するために通信経路上で使われます。
課題2.証明書警告の原因を考える
会社のWebシステムへアクセスすると、「この接続ではプライバシーが保護されません」という警告が表示されました。 考えられる原因を3つ挙げてください。
2.____________________
3.____________________
課題2の解答例を見る
- 証明書の有効期限が切れている
- アクセスしたドメイン名と証明書の対象が一致しない
- 端末が証明書の発行元を信頼していない
- 中間証明書が設定されていない
- 端末の日時が大きくずれている
課題3.利用者へ説明する
利用者から「南京錠マークが出ているので、この通販サイトは絶対に安全ですよね」と質問されました。 誤解がないように、2〜3文で説明してください。
課題3の説明例を見る
南京錠の表示は、ブラウザとWebサイトの間の通信が暗号化され、証明書を確認できたことを示します。 ただし、サイトの内容や運営者が信頼できることまで保証するものではありません。 URLのスペル、運営会社、取引条件なども確認してください。
自分の言葉で説明する課題
最後に、次の質問へ自分の言葉で答えてください。
「HTTPとHTTPSは何が違うのですか?」とITを知らない人から質問されました。 30秒程度で説明してください。
HTTPSは_____________________________。
説明例を見る
HTTPは、ブラウザとWebサーバーがWebページのデータをやり取りするためのルールです。 HTTPSは、そのHTTP通信を暗号化し、接続先が正しいか、途中でデータが書き換えられていないかを確認できるようにした仕組みです。
「HTTPはWeb通信のルール」「HTTPSはTLSで保護」「暗号化・認証・改ざん検知」 の3点を含めて説明できれば、この記事の目標は達成です。
まとめ
- HTTPは、ブラウザとWebサーバーがWebデータを要求・応答するための通信ルール
- HTTPSは、HTTP通信をTLSで保護する仕組み
- HTTPSは、機密性・認証・完全性の3つを提供する
- ブラウザはサーバー証明書のドメイン名、有効期限、発行元などを確認する
- HTTPSではHTTPヘッダー、本文、Cookie、URLのパスなどが暗号化される
- IPアドレスやポート番号など、通信を届けるために必要な情報は通信経路上で確認できる
- HTTPはTCP 80、HTTPSはTCP 443が一般的で、HTTP/3はUDP 443を利用する
- HTTPSであっても、Webサイトの内容や運営者が必ず安全とは限らない
HTTPSの本質は、Webページの表示方法を変えることではなく、 ブラウザとWebサーバーの間に安全な通信経路を作ることです。

コメント