はじめに: HTTPSは安全なWeb通信の入口
ブラウザでWebサイトを開くと、URLが http:// ではなく https:// で始まっていることがよくあります。ログイン画面、問い合わせフォーム、決済ページ、管理画面などでは、HTTPSで通信することがほぼ前提になっています。
HTTPSは、HTTP通信をより安全に行うための仕組みです。HTTPリクエストやHTTPレスポンスの考え方はそのまま使いつつ、通信経路をTLS(Transport Layer Security)という仕組みで保護します。
HTTP、IPアドレス、DNSを理解すると、ブラウザがどの相手に通信するのかが見えてきます。そこにHTTPSの視点を加えると、「その通信が安全に運ばれているか」まで考えられるようになります。
基本情報技術者試験でも、HTTPS、SSL/TLS、電子証明書、暗号化はセキュリティ分野でよく出てくるテーマです。この記事では、HTTPSをWeb開発で使う実感に近づけながら整理します。
HTTPSは、HTTP通信を暗号化し、より安全にやり取りするための仕組みです。
HTTPSはHTTPを安全に運ぶ仕組み
HTTPSは、HTTPとはまったく別の通信内容を送る仕組みではありません。HTTPリクエストとHTTPレスポンスを使う点は同じです。
違いは、そのHTTP通信をTLSで保護して送るところにあります。TLSは、通信内容を暗号化したり、途中で改ざんされていないかを確認したり、接続先のサーバーを確かめたりするために使われます。
イメージとしては、HTTPの手紙をそのまま裸で送るのではなく、封筒に入れ、封をして、相手も確認しながら届けるようなものです。
HTTP → 通信内容をそのまま送る
HTTPS → HTTP通信をTLSで保護して送るURLでは、https://example.com のように https:// で始まります。ブラウザのアドレスバーに鍵のアイコンや接続情報が表示されることもあります。
HTTPSはHTTPそのものを別物にするのではなく、HTTP通信をTLSで保護して送る仕組みです。
HTTPSが守る3つのこと
HTTPSを理解するときは、主に3つの目的に分けると整理しやすくなります。
盗み見されにくくする
途中で改ざんされにくくする
接続先が本物か確認する1つ目は、盗み見を防ぐことです。通信内容が暗号化されるため、途中のネットワークで第三者が内容を読み取りにくくなります。ログインパスワードやフォームの入力内容を扱う場面では特に重要です。
2つ目は、改ざんに気づきやすくすることです。通信の途中で内容が書き換えられた場合、それを検出できるようにします。WebページやAPIレスポンスの内容を勝手に変えられるリスクを下げます。
3つ目は、接続先の確認です。HTTPSではサーバー証明書を使い、接続先のサーバーがそのドメイン名に対応する相手として信頼できるかを確認します。
ただし、HTTPSだからサイトの内容すべてが正しい、という意味ではありません。HTTPSは通信経路を守る仕組みであり、サイト運営者の信頼性や入力先の安全性を完全に保証するものではありません。
HTTPSは、盗み見、改ざん、なりすましのリスクを下げるために使われます。
ブラウザでHTTPSを確認する
HTTPSかどうかは、ブラウザのアドレスバーで確認できます。URLが https:// で始まっていれば、そのページはHTTPSで読み込まれています。
ブラウザによって表示は少し違いますが、アドレスバー付近の接続情報から証明書の情報を確認できることもあります。証明書を見ると、どのドメイン名に対して発行されているか、有効期限がいつまでか、といった情報を確認できます。
開発者ツールのNetworkタブでも、通信先のURLがHTTPSかどうかを確認できます。API通信や画像、CSS、JavaScriptなど、ページ内で読み込まれる各リソースがHTTPSで取得されているかを見ることができます。
注意したいのは、鍵マークがあるだけで絶対に安全とは言えないことです。HTTPSは通信経路を保護しますが、フィッシングサイトや不正な入力フォームを自動的に見分けてくれるわけではありません。
ブラウザでは、URLのプロトコルや接続情報を見ることでHTTPS通信かどうかを確認できます。
JavaScriptでURLのプロトコルを見る
JavaScriptでは、現在のページやリンク先のURLがHTTPかHTTPSかを確認できます。
現在のページのプロトコルを見るなら、location.protocol を使えます。
console.log(location.protocol);HTTPSのページで実行すると、次のように表示されます。
https:任意のURLを確認したい場合は、URL オブジェクトを使えます。
const url = new URL("https://example.com/articles");
console.log(url.protocol);
console.log(url.hostname);出力は次のようになります。
https:
example.comprotocol を見ると、URLが http: なのか https: なのかを確認できます。Webアプリでは、外部リソースのURLやリダイレクト先を扱うときに、この違いが問題になることがあります。
JavaScriptでは、URLの protocol を見ると、そのページやリンクがHTTPかHTTPSかを確認できます。
SSL/TLSとサーバー証明書の基本
HTTPSの説明では、SSLやTLSという言葉が出てきます。現在のHTTPSで中心になるのはTLSです。ただし、慣習的に「SSL証明書」「SSL化」と呼ばれることもあります。
HTTPSでは、サーバー証明書が重要な役割を持ちます。サーバー証明書は、そのドメイン名とサーバーの関係を確認するために使われます。
ブラウザはHTTPSで接続するとき、サーバーから証明書を受け取り、その証明書が信頼できる認証局によって発行されているか、有効期限が切れていないか、アクセス先のドメイン名と合っているかを確認します。
証明書に問題があると、ブラウザは警告を表示することがあります。たとえば、証明書の期限切れ、ドメイン名の不一致、信頼できない証明書などです。
また、HTTPSでは公開鍵暗号と共通鍵暗号の考え方も関係します。細かい手順をすべて覚える必要はありませんが、最初の安全なやり取りに公開鍵暗号が関係し、実際の通信内容の暗号化には効率のよい共通鍵暗号が使われる、という大枠を押さえると理解しやすくなります。
HTTPSでは、TLSとサーバー証明書によって、暗号化された通信と接続先の確認を行います。
試験ではどう問われるか
基本情報技術者試験では、HTTPSはセキュリティとネットワークの両方に関係するテーマとして出てきます。
まず、HTTPSはHTTPをTLSで保護する仕組みとして押さえます。HTTPの上に安全な通信路を作る、と考えると理解しやすくなります。
次に、HTTPSが守る内容です。暗号化によって盗み見を防ぎ、改ざん検知によって通信内容の変更に気づきやすくし、証明書によって接続先を確認します。
暗号方式との関係も重要です。公開鍵暗号、共通鍵暗号、電子証明書、認証局といった用語は、HTTPSの説明と一緒に出てくることがあります。
試験では、HTTPSを「HTTPをTLSで保護する仕組み」として、暗号化や証明書の知識と結び付けて理解することが大切です。
実務ではどう使われるか
実務では、Webサイトを公開するときにHTTPS化が必要になります。独自ドメインを使う場合、サーバーやホスティングサービスで証明書を設定します。
証明書には有効期限があります。期限が切れるとブラウザに警告が出て、ユーザーがサイトへアクセスしにくくなります。そのため、自動更新の設定や更新状況の確認が重要です。
HTTPでアクセスされたときに、HTTPSへリダイレクトする設定もよく使われます。これにより、ユーザーが http:// でアクセスしても、安全な https:// 側へ誘導できます。
また、HTTPSのページ内でHTTPの画像やJavaScriptを読み込むと、Mixed Contentとしてブロックされたり警告されたりすることがあります。ページ本体だけでなく、読み込むリソースもHTTPSになっているか確認する必要があります。
CookieでもHTTPSは関係します。ログイン状態に関係するCookieには、HTTPS通信でだけ送信する Secure 属性を付けることがあります。
実務では、HTTPS化だけでなく、証明書更新、リダイレクト、混在コンテンツ、Cookie設定まで含めて確認する必要があります。
まとめ: HTTPSを理解するとWeb通信の安全性が見える
HTTPSは、HTTP通信をTLSで保護する仕組みです。HTTPリクエストとHTTPレスポンスの考え方はそのまま使いつつ、通信経路を暗号化して安全性を高めます。
HTTPSが守る主なポイントは、盗み見されにくくすること、改ざんに気づきやすくすること、接続先サーバーを確認することです。サーバー証明書や認証局は、この接続先確認に関係します。
ブラウザでは、URLの https:// や接続情報、開発者ツールのNetworkタブからHTTPS通信を確認できます。実務では、証明書の期限切れ、HTTPからHTTPSへのリダイレクト、Mixed Content、CookieのSecure属性なども大切です。
HTTPSを理解すると、Webサイトが通信経路で何を守ろうとしているのかを具体的に考えられるようになります。

コメント