• 診断項目 No.1/127
  • 通信の暗号化(HTTPS・TLS・HSTS)
  • 重大度 最重要(critical)

HTTPSで配信されているとは?確認方法・HTTPS化の手順・診断基準

HTTPSで配信されているかは、リダイレクト後の最終URLが https: かで確認します。HTTPのままのリスク、Chromeの警告表示、Apache・nginx・IIS・Vercelの設定例と移行手順、診断基準を解説します。

結論(HTTPSで配信されている)

HTTPSで配信されているとは、サイトにアクセスしてリダイレクトをたどった最終的な応答が、TLSで暗号化されたHTTPS(https:)で返っている状態です。HTTPSは盗聴・改ざんの防止と、接続先が正しいサーバーであることの確認を同時に実現します。閲覧専用のページでも改ざんの危険があるため、サイト全体のHTTPS化が前提です。セキュリティAIチェッカーでは最も重い重み5(critical)の項目です。

この記事のポイント

  • HTTPSは機密性・完全性・真正性の3つを守ります。HTTPでは通信の盗聴やページの書き換えが可能です。
  • 個人情報を扱わないページやフォーム以外のページも、HTTPSにする必要があります(ASVS V12.2.1は「すべての接続」にTLSを求めています)。
  • Chrome 154で「常に安全な接続を使用する」が既定で有効になり、HTTPのみの公開サイトには初回アクセス前に警告が出ます。
  • セキュリティAIチェッカーは、転送を最大4回までたどった最終URLが https: なら○、http: なら×と判定します。
  • 証明書の取得→並行稼働→内部リンク修正→恒久転送→HSTSの段階導入、の順で移行するとサイトを壊しません。
診断項目名HTTPSで配信されている
項目IDtransport.https
分類通信の暗号化(HTTPS・TLS・HSTS)
重大度・配点の重み最重要(critical) 重み 5
関連する標準・ガイドラインOWASP ASVS 5.0.0 V12.2.1(L1:外部向けHTTPサービスとの全通信にTLSを使い、非暗号化通信へフォールバックしない)、ASVS V12.1.1(L1:TLS 1.2/1.3のみ有効)、OWASP WSTG-CRYP-01(Testing for Weak Transport Layer Security)、CWE-319(Cleartext Transmission of Sensitive Information)

HTTPSで配信されているとは

HTTPSで配信されているとは、診断対象のURLにアクセスし、リダイレクトをたどった最終的な応答がHTTPS(https:)で返っている状態のことです。HTTPSはHTTPをTLSで暗号化したもので、通信内容の盗聴・改ざんの防止と、接続先が正しいサーバーであることの確認(サーバー認証)を同時に実現します。

自治体公式サイトは、住民が申請書をダウンロードし、問い合わせフォームに個人情報を入力し、災害時には避難情報を確認する場所です。閲覧するだけのページであっても、通信経路上で内容をすり替えられれば、偽の情報や不正なリンクを住民に見せられてしまいます。そのためセキュリティAIチェッカーでは、この項目に最も重い 重み5・重大度critical を割り当てています。

HTTPSが守る3つのもの

守るもの内容
機密性公衆無線LANや経路上の機器で通信内容を読み取られない
完全性ページの文章、ダウンロードPDF、JavaScriptを経路上で書き換えられない。HTTPでは広告挿入やマルウェア配布リンクへの差し替えが技術的に可能
真正性サーバー証明書により、接続先が当該ドメインの正当な運用者であることをブラウザが検証する

なぜサイト全体のHTTPS化が必要なのか

ブラウザ側の動向(ChromeのHTTPS既定化)

Googleは2025年10月、Chrome 154で「常に安全な接続を使用する(Always Use Secure Connections)」を既定で有効化し、HTTPSのない公開サイトへ初めてアクセスする前にユーザーの許可を求めると発表しました(発表時の予定は2026年10月。Chrome 154の安定版は2026年9月22日に公開済み)。先行してChrome 147(2026年4月)では、セーフ ブラウジングの保護強化機能(Enhanced Safe Browsing)を有効にしているユーザーが対象になっています。

ローカルIPや社内イントラネットなどのプライベートサイトは警告の対象外です。つまり、公開されている自治体サイトがHTTPのままだと、Chrome利用者には警告画面が表示されることになります。

HTTPS化についてよくある誤解

  • 「個人情報を扱わないページはHTTPでよい」:誤りです。改ざんの危険は閲覧専用ページにもあり、HTTPページから読み込まれるリンクやフォームの送信先も攻撃者が書き換えられます。ASVS V12.2.1は「すべての接続」にTLSを求めています。
  • 「フォーム画面だけHTTPSにすればよい」:入口のHTTPページが改ざんされれば、フォームへのリンク自体をフィッシングサイトに差し替えられます(いわゆるSSL Strip攻撃)。サイト全体のHTTPS化が前提です。
  • 「HTTPSなら安全なサイト」:HTTPSは通信路を保護するだけで、サイトのアプリケーション脆弱性の有無とは無関係です。この項目の○は「通信路の暗号化が成立した」という意味に限られます。

関連する診断項目との違い

この項目は「最終的にHTTPSで応答しているか」だけを見ます。HTTPでアクセスされたときの転送は「HTTPからHTTPSへ転送」、HTTPSからHTTPへ戻る転送は「HTTPSからHTTPへ降格しない」、証明書の状態は「TLS証明書が現在有効」と「証明書チェーンが信頼される」、ページ内のHTTP資産は「Mixed Contentがない」でそれぞれ確認します。

HTTPSで配信されているの診断基準(セキュリティAIチェッカー)

取得方法

  1. 入力URL(http: または https:)に対し、サーバー側からGETリクエストを送ります(pinnedFetch。DNS解決結果を固定して内部ネットワークへの到達を防止)。
  2. 3xx応答(301/302/303/307/308)の Location を最大4回までたどり、最終的に得られた応答のURL(finalUrl)を判定対象にします。
  3. HTTPS接続時は rejectUnauthorized: true(Node.js標準の証明書検証)で接続します。

判定条件

判定条件得点への影響
○ 問題なし(pass)最終URLのスキームが https:重み5を満点として加算
× 要改善(fail)最終URLのスキームが http:(HTTPのまま応答、またはHTTPSからHTTPへ転送された)重み5の分母に入り、0点
対象外(na)なし(常に判定される)—
  • HTTPS接続で証明書検証に失敗した場合(期限切れ・ホスト名不一致・自己署名・中間証明書欠落など)は、応答そのものを取得できないため診断全体がエラーとなり、レポートは生成されません。この場合は本項目の結果ではなく、エラーメッセージで原因を確認します。
  • この項目は「トップページの最終到達URL」だけを見ます。サイト内の他ページや画像・スクリプトがHTTPで読み込まれているかは、混在コンテンツ系や複数ページ診断の別項目で扱います。
  • スコアは pass=1.00、warn=0.45、fail=0 の重み付き平均です。重み5の×は、他の項目が満点でも全体スコアを大きく押し下げます。

自治体サイトでの判定例

入力URL応答の流れ判定
http://www.city.example.lg.jp/301で https://www.city.example.lg.jp/ へ転送、200応答○
https://www.city.example.lg.jp/そのまま200応答○
http://www.town.example.lg.jp/転送なしでHTTPのまま200応答×
https://www.village.example.lg.jp/302で http://www.village.example.lg.jp/top.html へ転送×(降格。「HTTPSからHTTPへ降格しない」も×)
https://www.city.example.lg.jp/証明書期限切れ診断エラー(レポートなし)

HTTPSで配信されていないとどんなリスクがあるか

  • 経路上での盗聴:問い合わせフォームの入力内容(氏名・住所・電話番号・相談内容)が平文で流れ、公衆無線LANなどで傍受されるおそれがあります(CWE-319)。
  • コンテンツ改ざん:経路上の攻撃者が、ページ内の申請書PDFのリンクをマルウェアに差し替える、避難所情報を書き換える、偽の振込先を表示する、といった改ざんを行えます。
  • SSL Strip攻撃:HTTPページ内の「HTTPSのフォームへ」というリンクをHTTPのまま中継させ、住民に暗号化されていない画面で入力させる攻撃です。WSTG-CRYP-01でも、HTTPからHTTPSへの転送を経路上で妨害されうる点が指摘されています。
  • 信頼性の低下:前述のChromeの既定変更により、HTTPサイトには警告画面が出ます。住民が「自治体サイトに警告が出る」ことに不安を感じたり、警告に慣れて本物の攻撃を見逃したりする副作用があります。

HTTPS化の設定方法(Apache・nginx・IIS・Next.js)

1. 証明書の取得と配置

  • 公的に信頼される認証局(CA)の証明書を取得します(ASVS V12.2.2)。CMS事業者やCDN(クラウド型WAFを含む)を利用している場合は、事業者側で自動発行・自動更新される方式を優先します。
  • 2026年3月15日以降、公開TLS証明書の最大有効期間は200日に短縮されています(CA/Browser Forum Ballot SC-081v3。2027年3月15日から100日、2029年3月15日から47日)。手動更新は運用破綻の原因になるため、ACMEなどによる自動更新を前提に設計してください。

2. Webサーバーの設定例

Apache(VirtualHostに書きます。証明書の指定は .htaccess には書けません)

# :443 側
<VirtualHost *:443>
    ServerName www.city.example.lg.jp
    SSLEngine on
    SSLCertificateFile    /etc/ssl/certs/www.city.example.lg.jp.fullchain.pem
    SSLCertificateKeyFile /etc/ssl/private/www.city.example.lg.jp.key
    SSLProtocol -all +TLSv1.2 +TLSv1.3
</VirtualHost>

nginx

server {
    listen 443 ssl;
    http2 on;   # nginx 1.25.1以降。それ以前は listen 443 ssl http2;
    server_name www.city.example.lg.jp;
    ssl_certificate     /etc/ssl/www.city.example.lg.jp/fullchain.pem;
    ssl_certificate_key /etc/ssl/www.city.example.lg.jp/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
}

IIS:サイトのバインドに https(443)を追加し、証明書を選択します。HTTP→HTTPSの転送はURL Rewriteまたは <hsts redirectHttpToHttps="true">(IIS 10.0 version 1709以降)で設定できます(詳細は「HTTPからHTTPSへ転送」の項目)。

Next.js(Vercel):Vercelは独自ドメインにも証明書を自動発行し、HTTPからHTTPSへの転送を自動で行います。独自ドメインを追加した後、DNS設定が正しく反映されているかをダッシュボードで確認します。

3. サイトを壊さない段階的な移行手順

  1. 棚卸し:ページ内の http:// で始まる画像・スクリプト・CSS・iframe・フォーム送信先を検索します。HTTPS化後にこれらが混在コンテンツとしてブロックされ、表示崩れやフォーム不動作の原因になります。
  2. HTTPSを並行稼働:HTTPを残したままHTTPSでも同じ内容を表示できる状態にし、主要ページ・申請フォーム・外部連携(地図、動画、予約システム)を確認します。
  3. 内部リンクの修正:CMSのサイトURL設定、テンプレート内の絶対URL、canonical、sitemap.xmlをHTTPSに変更します。
  4. 恒久転送を有効化:HTTPへのアクセスを301/308でHTTPSへ転送します。
  5. HSTSの段階導入:短いmax-ageから始め、問題がないことを確認して延長します(「HSTSが設定されている」の項目を参照)。

4. HTTPSで配信されているかの確認方法

# 最終URLとステータスを確認(-L で転送をたどる)
curl -sIL http://www.city.example.lg.jp/ | grep -iE '^(HTTP/|location:)'

# 証明書の発行者・有効期限・SANを確認
openssl s_client -connect www.city.example.lg.jp:443 -servername www.city.example.lg.jp </dev/null 2>/dev/null \
  | openssl x509 -noout -issuer -subject -dates -ext subjectAltName

最後の行が HTTP/2 200 または HTTP/1.1 200 OK で、直前の location: が https:// で始まっていれば、この項目は○になります。

HTTPS化の注意点

  • 共有ホスティングで .htaccess に php_value を書くと、LiteSpeedやCGI環境では500エラーになることがあります。HTTPS化の作業で .htaccess を編集する際は、変更前のファイルを必ず保存し、変更は1つずつ反映して確認してください。
  • 外部の予約システムや決済画面などを別ドメインで利用している場合は、そちらのHTTPS対応も確認が必要です。自治体側のページがHTTPSでも、リンク先がHTTPなら住民の入力は保護されません。

よくある質問(FAQ)

個人情報を扱わないページもHTTPSにする必要がありますか?

必要です。閲覧専用のページでも、通信経路上で文章やリンク、ダウンロードPDFを書き換えられるおそれがあります。OWASP ASVS 5.0.0 V12.2.1も、外部向けサービスとの「すべての接続」にTLSを求めています。

問い合わせフォームのページだけHTTPSにすれば十分ですか?

十分ではありません。入口のHTTPページが改ざんされると、フォームへのリンク自体をフィッシングサイトに差し替えられます(SSL Strip攻撃)。サイト全体をHTTPS化してください。

HTTPSのサイトなら安全なサイトといえますか?

HTTPSは通信路を保護する仕組みで、サイトのアプリケーションに脆弱性があるかどうかとは無関係です。この項目の○は「通信路の暗号化が成立した」という意味に限られます。

HTTPのままだとChromeではどうなりますか?

GoogleはChrome 154で「常に安全な接続を使用する」を既定で有効にし、HTTPSのない公開サイトへ初めてアクセスする前に利用者の許可を求めると発表しています。Chrome 154の安定版は2026年9月22日に公開されました。ローカルIPや社内イントラネットなどは対象外です。

HTTPSで配信されているかは、セキュリティAIチェッカーでどう判定されますか?

入力URLから転送を最大4回までたどり、最終URLのスキームが https: なら「○ 問題なし」、http: なら「× 要改善」です。HTTPSからHTTPへ転送された場合も×になります。重み5のため、×だと全体スコアが大きく下がります。

証明書の期限切れでも「HTTPSで配信されている」は判定されますか?

証明書の検証に失敗すると応答そのものを取得できないため、診断全体がエラーになりレポートは生成されません。この場合はエラーメッセージで原因を確認します。

HTTPS化したらまず何を確認すべきですか?

curl -sIL でHTTPのURLを指定し、最後の行が200で、直前のlocationが https:// で始まっているかを確認します。あわせて、ページ内の http:// で読み込む画像やスクリプトが残っていないかも確認してください。

セキュリティAIチェッカーを利用する

この項目を含む127項目を、URLを入れるだけで無料診断します。

参考資料