HTTPとHTTPSの違いとは?暗号化・証明書・通信の仕組みを初心者向けに図解

当ページのリンクには広告が含まれています。
ネットワーク初級編 24/全32記事

この記事は、 「ネットワーク初級編|通信の仕組みをゼロから学ぶ」 の第24回です。

前回は、NATとNAPTを使ってプライベートIPアドレスの端末が インターネットへ接続する仕組みを学びました。 今回は、Web通信で使われるHTTPとHTTPSの違いを解説します。

HTTPとHTTPSの違いとは?暗号化・証明書・通信の仕組みを初心者向けに図解

WebサイトのURLには、http://で始まるものと https://で始まるものがあります。 HTTPSは単に「HTTPへSを付けたもの」ではなく、通信内容を暗号化し、 接続先を確認し、途中での改ざんを検知する仕組みを加えたWeb通信です。

対象レベル Level 1・初級
想定読了時間 約18分
身につく成果 HTTPとHTTPSの違いを説明できる
前提知識 TCP・Web通信・DNSの基礎
演習環境 ブラウザのみ

ログイン画面やショッピングサイトで、パスワードやクレジットカード情報を入力する場面を考えてみましょう。 通信内容がそのまま読める状態では、途中で情報を盗み見られる危険があります。

そこで現在の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リクエストを送る
🗄️ Webサーバー 要求を受け取る
📄 Webデータ HTTPレスポンスで返す
リクエスト:このページを送ってください
レスポンス:ページの内容と処理結果を返します

HTTPリクエストの簡単なイメージ

GET /products HTTP/1.1
Host: example.com
User-Agent: Browser
Cookie: session=xxxxxxxx

実際のHTTPリクエストには、要求するページ、接続先のホスト名、ブラウザの情報、 Cookieなどが含まれることがあります。 HTTPは、これらの情報をどのような形式で送るかを決めています。

HTTPの役割は、Webデータの要求方法と応答方法を決めることです。 HTTPそのものは、通信経路の暗号化を目的としたプロトコルではありません。

HTTP通信にどのような危険があるのか

暗号化されていないHTTP通信では、通信経路上でデータを取得できる第三者に、 内容を読まれたり書き換えられたりする可能性があります。

暗号化されていないHTTP通信のイメージ

💻 利用者 ID・パスワードを送信
👀 通信の途中 内容を読める可能性
🗄️ Webサーバー 入力情報を受信
例:user=tanaka&password=network123 のような内容が、そのまま読み取られる危険がある
1

盗み見

ID、パスワード、検索内容、入力フォーム、Cookieなどを読まれる危険があります。

2

改ざん

利用者が送るデータや、サーバーから返るページを途中で書き換えられる危険があります。

3

なりすまし

正しいサーバーと思って接続した相手が、本物であることをHTTPだけでは確認できません。

こうした問題へ対処するため、HTTP通信をTLSという仕組みで保護したHTTPSが使われます。

HTTPSとは何か

HTTPSは、Hypertext Transfer Protocol Secureの略です。 HTTPによるWeb通信を、TLSというセキュリティ技術で保護します。

HTTPS通信のイメージ

💻 ブラウザ 暗号化して送信
🔒
🔐 暗号化された通信 内容を簡単に読めない
🔒
🗄️ Webサーバー 復号して処理
通信経路上では暗号化されたデータが流れ、ブラウザと正しいWebサーバーが内容を扱います

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を使って、安全に通信するための準備を行います。

  1. ブラウザがHTTPSで接続を開始する ブラウザはWebサーバーへ接続し、利用できるTLSの方式などを知らせます。
  2. Webサーバーが証明書を提示する Webサーバーは、サーバー証明書と通信に必要な情報をブラウザへ返します。
  3. ブラウザが証明書を確認する 証明書の有効期限、ドメイン名、発行元などを確認します。
  4. 暗号化に使う鍵を安全に共有する ブラウザとWebサーバーは、以後の通信を暗号化するための共通鍵を作ります。
  5. 暗号化されたHTTP通信を行う TLSの準備が完了した後、HTTPリクエストとHTTPレスポンスを暗号化して送受信します。

HTTPS接続の全体像

1️⃣ 接続開始 TLS方式を相談
2️⃣ 証明書確認 接続先を確認
3️⃣ 鍵を共有 暗号化の準備
4️⃣ HTTPS通信 HTTPデータを暗号化

実際のTLSハンドシェイクでは複数のメッセージが交換されます。 初級編では、証明書を確認し、暗号化用の鍵を共有してから、HTTP通信を始めると理解できれば十分です。

サーバー証明書とは何か

サーバー証明書は、WebサーバーがHTTPS通信を行うときにブラウザへ提示する電子的な証明書です。 証明書には、主に次のような情報が含まれます。

証明書に含まれる主な情報

  • 証明書が対象とするドメイン名
  • 証明書の有効期間
  • 証明書を発行した認証局
  • 公開鍵に関する情報
  • 証明書を検証するための署名

ブラウザが確認する主な項目

  • アクセス先のドメイン名と一致するか
  • 有効期限が切れていないか
  • 信頼できる認証局へつながるか
  • 証明書が不正に変更されていないか
  • 安全なTLS接続を確立できるか

認証局とは何か

認証局は、証明書を発行し、その証明書が信頼できるかを確認するための基盤を提供する組織です。 ブラウザやOSには、信頼する認証局の情報があらかじめ登録されています。

ブラウザは、Webサーバーの証明書から信頼できる認証局まで、証明書のつながりを確認します。 このつながりを証明書チェーンと呼びます。

サーバー証明書は「このサイトの運営者が絶対に安全」と保証するものではありません。 主に、アクセス先のドメインと証明書の対応や、暗号化通信に必要な公開鍵の正当性を確認するために使われます。

HTTPSで暗号化される情報・見える情報

HTTPSを使うと、HTTPリクエストやHTTPレスポンスの内容はTLSによって保護されます。 ただし、通信に関するすべての情報が完全に見えなくなるわけではありません。

送信元IP
宛先IP
ポート番号
HTTPヘッダー
URLのパス・検索条件
本文・Cookie
情報 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 通信経路を保護
🔒
🗄️ 接続先サーバー 証明書の対象
HTTPSは通信経路を保護するが、サイトの商品・説明・運営者が信用できるかは別途判断が必要
  • フィッシングサイトでもHTTPSを利用できる
  • サイト運営者が入力情報を不適切に扱う可能性は残る
  • ダウンロードしたファイルが安全とは限らない
  • URLのスペルが正しいかは利用者自身でも確認する必要がある

ブラウザの接続表示は、主に「この接続が暗号化され、証明書を確認できた」ことを示します。 「このサイトに書かれている内容はすべて正しい」という合格マークではありません。

HTTPとHTTPSに関するよくある勘違い

HTTPSなら、そのWebサイトは絶対に安全

HTTPSは通信経路を保護しますが、Webサイトの内容や運営者の信頼性までは保証しません。 偽サイトでもHTTPSを利用できます。

HTTPSにするとWebページの内容そのものが暗号化されて保存される

HTTPSが主に保護するのは、ブラウザとWebサーバー間を移動している通信データです。 サーバーや端末へ保存されたデータの保護は、別の対策が必要です。

HTTPSでは、接続先IPアドレスも完全に隠れる

IPパケットを届けるため、送信元と宛先のIPアドレスは通信経路上で必要です。 HTTPSは主にHTTPデータの中身を暗号化します。

HTTPとHTTPSは、まったく別のWeb通信方式

HTTPSでも、Webページを要求・応答する基本ルールはHTTPです。 そのHTTP通信をTLSで保護したものがHTTPSです。

HTTPSでは証明書を確認してから暗号化通信を始める

ブラウザはサーバー証明書を検証し、暗号化に使う鍵を共有した後、 HTTPリクエストとHTTPレスポンスを暗号化して送受信します。

理解度チェック

記事の内容を確認するため、次の5問に答えてください。 解答を見る前に、一度自分で考えてみましょう。

問題1.HTTPとHTTPSの違いとして最も適切なものはどれですか。

  1. HTTPは画像専用、HTTPSは文字専用の通信である
  2. HTTPSはHTTP通信をTLSで保護する
  3. HTTPはインターネット用、HTTPSは社内ネットワーク専用である
  4. HTTPSではIPアドレスを使わない
解答を見る
正解:B

HTTPSは、HTTPの要求・応答をTLSで保護し、暗号化、認証、完全性確認を行います。

問題2.HTTPSが提供する3つの主な保護を答えてください。

解答を見る
正解:機密性、認証、完全性

通信内容を暗号化し、接続先を証明書で確認し、途中でデータが改ざんされていないかを確認します。

問題3.HTTPとHTTPSで一般的に使われるポート番号の組み合わせはどれですか。

  1. HTTP:22、HTTPS:23
  2. HTTP:53、HTTPS:67
  3. HTTP:80、HTTPS:443
  4. HTTP:443、HTTPS:80
解答を見る
正解:C

HTTPではTCP 80、HTTPSではTCP 443が一般的です。HTTP/3ではUDP 443が使われます。

問題4.HTTPS接続でサーバー証明書を確認する目的は何ですか。

解答を見る

接続先のドメイン名と証明書が対応しているか、有効期限内か、 信頼できる認証局へつながるかなどを確認し、接続先を認証するためです。

問題5.「HTTPSのWebサイトなら必ず信頼できる」という説明は正しいですか。

解答を見る
正しくありません。

HTTPSは通信経路を保護しますが、サイトの内容や運営者の信頼性を保証するものではありません。 URLやサイト内容も確認する必要があります。

実践演習:HTTPS通信を読み取ろう

次の状況を読み、どこまでHTTPSで保護されるのかを考えてみましょう。

オンラインショップへログインする通信

💻 利用者PC ユーザー名・パスワード入力
🔒
🌐 インターネット 暗号化データを中継
🔒
🛒 ショップサーバー ログイン処理

課題1.HTTPSで保護される情報を選ぶ

次のうち、HTTPデータとして暗号化されるものを選んでください。

  • ログインフォームへ入力したパスワード
  • Cookie
  • アクセスしたURLのパス
  • 宛先IPアドレス
  • 宛先ポート番号
暗号化されるもの:____________________
課題1の解答を見る

暗号化されるもの:パスワード、Cookie、URLのパス

宛先IPアドレスとポート番号は、パケットを届け、通信を識別するために通信経路上で使われます。

課題2.証明書警告の原因を考える

会社のWebシステムへアクセスすると、「この接続ではプライバシーが保護されません」という警告が表示されました。 考えられる原因を3つ挙げてください。

1.____________________
2.____________________
3.____________________
課題2の解答例を見る
  • 証明書の有効期限が切れている
  • アクセスしたドメイン名と証明書の対象が一致しない
  • 端末が証明書の発行元を信頼していない
  • 中間証明書が設定されていない
  • 端末の日時が大きくずれている

課題3.利用者へ説明する

利用者から「南京錠マークが出ているので、この通販サイトは絶対に安全ですよね」と質問されました。 誤解がないように、2〜3文で説明してください。

ここに説明を書いてみましょう。
課題3の説明例を見る

南京錠の表示は、ブラウザとWebサイトの間の通信が暗号化され、証明書を確認できたことを示します。 ただし、サイトの内容や運営者が信頼できることまで保証するものではありません。 URLのスペル、運営会社、取引条件なども確認してください。

自分の言葉で説明する課題

最後に、次の質問へ自分の言葉で答えてください。

「HTTPとHTTPSは何が違うのですか?」とITを知らない人から質問されました。 30秒程度で説明してください。

HTTPは______________________________。
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サーバーの間に安全な通信経路を作ることです。

次の記事:無線LANと有線LANの違い

今回は、Web通信を安全に行うHTTPとHTTPSの違いを学びました。

次の記事では、端末をネットワークへ接続する方法として使われる 無線LANと有線LANを比較します。 通信速度、安定性、セキュリティ、設置のしやすさの違いを整理します。

ネットワーク初級編 24/全32記事

初級編では、ネットワークの全体像からIPアドレス、DNS、TCP、 身近なネットワークサービス、基本コマンド、障害切り分けまでを順番に学びます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次