HTML ページにパスワードをかけて、知っている人だけに見せる方法

結論

HTML ページにパスワードをかけるなら、ページがブラウザに届く前にパスワードを確かめる方法を選びます。JavaScript で入力欄を出すだけのやり方は、パスワードがページのソースに書かれていて、開けば誰でも読めます。確かな方法はレンタルサーバーの Basic 認証、StatiCrypt での暗号化、パスワード機能のある公開サービスの 3 つで、Convika なら ChatGPT や Claude で作った HTML をアップロードし、パスワードを設定して公開するだけです(Pro プランは月 $12。初めて公開した日から 14 日間は、カード登録なしで Pro を使えます)。

ページにパスワードをかける

初めての公開から 14 日間は、カード登録なしで Pro を使えます。その後は月 $12

ChatGPT に頼んで、取引先に出す見積もりと工程表を HTML のページにまとめた。見せたいのは先方の担当者 3 人だけで、URL が転送されて誰にでも開かれるのは困る。そこで必要になるのが、ページにかけるパスワードです。このガイドでは、パスワードのかけ方を仕組みの違いから比べたうえで、Convika で HTML ページにパスワードをかける手順を説明します。

HTML でパスワードをかけるには、まず仕組みの違いを知る

HTML でパスワードをかけるには、ページを送る前にサーバーでパスワードを確かめるか、ページの中身を暗号化しておく必要があります。HTML だけでは、ページを守るパスワードはかけられません。

「html パスワード」で調べると、<input type="password"> の説明がよく出てきます。これはフォームの入力欄で、打った文字を「●」で隠すだけのものです。ページそのものは守れません。

パスワードをどこで確かめるかで、方法は 3 つに分かれます。

  • 見る人のブラウザで確かめる。 JavaScript で入力欄を出す方法です。パスワードはページの中に書かれています。
  • ブラウザで暗号を解く。 StatiCrypt のような暗号化ツールです。パスワードが暗号を解く鍵になります。
  • サーバーで確かめる。 レンタルサーバーの Basic 認証や、公開サービスのパスワード機能です。パスワードが正しいときだけ、ページが送られます。

JavaScript のパスワードでは守れない理由

よく紹介されるのは、次のようなスクリプトです。入力されたパスワードが違えば、ページの中身を消します。

<script>
  var password = prompt("パスワードを入力してください");
  if (password !== "himitsu") {
    document.body.innerHTML = "パスワードが違います";
  }
</script>

このスクリプトが動く前に、ブラウザはファイルをまるごと受け取っています。パスワードの「himitsu」も、隠したいはずの本文も、受け取ったファイルの中にあります。右クリックの「ページのソースを表示」で誰でも読めますし、ブラウザで JavaScript をオフにすれば、入力欄すら出ません。2026 年 10 月 13 日に、このスクリプトを入れたページを公開し、ブラウザを使わずに curl で取得してみると、返ってきた HTML にはパスワードも、隠したはずの文もそのまま入っていました。

セキュリティの弱点を分類した MITRE の一覧でも、この作りは CWE-602「Client-Side Enforcement of Server-Side Security」として挙げられています。サーバーで確かめるべきことをブラウザ側に任せると、ブラウザ側の動きを変えるだけで確認をすり抜けられる、という弱点です。英語圏の Q&A サイト Stack Overflow のこの質問(閲覧 62,850 回)にも、CSS や HTML、JavaScript に書いたパスワードの確認はすべてブラウザにダウンロードされるので役に立たず、確認はサーバー側でする必要がある、という回答が付いています。

パスワードをかける 4 つの方法

方法パスワードを確かめる場所パスワードなしで中身を読めるか独自ドメイン必要な準備
JavaScript で入力欄を出す見る人のブラウザ読める。ソースにパスワードと本文があるどこでも使えるスクリプトを貼る
StatiCrypt などで暗号化するブラウザ(暗号を解く)読めない。ただし暗号化したファイルは誰でもダウンロードでき、手元で何度でもパスワードを試せるどこでも使えるファイルを暗号化してから置く。直すたびに暗号化し直す
Basic 認証(レンタルサーバー)Web サーバー読めない使える.htaccess と .htpasswd を置く
公開サービスのパスワード機能サービスのサーバー読めないサービスによる(次の表)管理画面で設定する

Basic 認証(レンタルサーバー)

Apache で動くレンタルサーバーなら、Basic 認証が昔からの定番です。ページを開くと、ブラウザがユーザー名とパスワードを聞く小さな画面を出し、正しいときだけサーバーがページを送ります。Apache の認証のドキュメントにある手順は、次のとおりです。

  1. htpasswd のコマンドでパスワードファイルを作ります(例: htpasswd -c /home/example/.htpasswd tanaka)。ドキュメントは、このファイルを「ウェブからアクセスできる場所に置くべきではありません」としています。
  2. パスワードをかけたいフォルダに .htaccess を置き、次のように書きます。
AuthType Basic
AuthName "Members only"
AuthUserFile /home/example/.htpasswd
Require valid-user

.htaccess に認証の設定を書けるかどうかは、サーバー側の設定(AllowOverride AuthConfig)しだいです。パスワードはフォルダごとにかかるので、1 ページだけにかけるなら、そのページ用のフォルダを作ります。

StatiCrypt などの暗号化ツール

StatiCrypt は、HTML のファイルを AES-256 で暗号化して、パスワードの入力画面の付いた HTML にする無料のツールです。暗号を解くのはブラウザの JavaScript なので、どこに置いても使えます。ただし、暗号化したファイルは誰でもダウンロードできます。README も、総当たりや辞書攻撃が手元で速く試せてしまうので、長く推測されにくいパスワードを使うよう勧めています。ページを直すたびに、暗号化し直してアップロードします。

公開サービスのパスワード機能

ページを置いたサービスのサーバーが、パスワードを確かめます。Basic 認証と同じくサーバー側で確かめる方法で、サーバーのファイルを編集したり、コマンドを打ったりする必要はありません。使えるサービスは、次の表にまとめました。

サービスごとのパスワード機能

2026 年 10 月 13 日に、各社のヘルプと料金ページで確かめた内容です。

サービス公開したページにパスワード使えるプラン独自ドメイン見る人に必要なもの
GitHub Pagesかけられない見る人を絞るには GitHub Enterprise Cloud関係なしリポジトリの読み取りアクセス
Netlifyかけられる(サイト全体か、フォルダごと)Pro(月 $20)使えるパスワード
Cloudflare Pagesパスワードはない。Access でメールに届くコードを使うAccess の Free(50 ユーザーまで)ドメインごとに Access の設定が要る許可されたメールアドレス
Google サイトかけられない無料使える名前かメールアドレスで追加してもらう
Wixかけられる(ページごと、サイト全体)ヘルプに記載なしプレミアムプランからパスワード
STUDIOかけられる(サイト全体だけ)Personal 以上(年払いで月 1,190 円)使えるパスワード。ブラウザを閉じると入力し直し
Notionかけられない関係なし関係なしNotion のアカウント(招待)
Tiiny HostかけられるSolo(月 $18、年払いなら月 $13)Solo 以上パスワード
Convikaかけられる(ページごと)Pro(月 $12、年 $108)。最初の公開から 14 日間は無料(カード登録なし)Free で 1 つ、Pro は無制限パスワード
  • GitHub Pages: GitHub のドキュメントには「GitHub Pages サイトのリポジトリがプライベートの場合 (プランまたは組織で許可されている場合) でも、サイトはインターネット上で一般公開されます。」とあります。プライベートで公開するには organization が GitHub Enterprise Cloud を使う必要があり、開けるのはリポジトリの読み取りアクセスを持つ人だけです(サイトの可視性の変更)。
  • Netlify: Netlify のドキュメント(英語)によると、サイト全体へのパスワードは Pro で使え、クレジット制の Free と Personal では使えません。フォルダごとにかけるなら _headers のファイルに Basic-Auth のルールを書く方法もあり、Basic 認証のドキュメント(英語)によると、これも Pro と Enterprise のプランで使えます。Pro は料金ページで月 $20 です。
  • Cloudflare Pages: Pages に付いているアクセス制限はプレビュー用のデプロイだけが対象で、公開中のサイトは守れません(Cloudflare のドキュメント、英語)。公開中のサイトで見る人を絞るなら Cloudflare Access を使い、Access のポリシーで許可したメールアドレスにだけ、ログイン用のコードが届きます(ワンタイム PIN)。Access は 50 ユーザーまで無料です。
  • Google サイト: Google のヘルプによると、[公開済みサイト] の横で [制限付き] を選ぶと、名前かメールアドレスで追加したユーザーにだけサイトを共有できます。パスワードの機能はありません。
  • Wix: 英語版の Wix のヘルプによると、ページごとにパスワードをかけられ、サイト全体を 1 つのパスワードで守ることもできます。どのプランで使えるかは書かれていません。Wix には HTML のファイルをそのままアップロードする方法がなく、独自ドメインはプレミアムプランからです(「Wix の無料プランで独自ドメインは使える?」)。
  • STUDIO: STUDIO のヘルプには「対象プラン:Personalプラン以上(旧プラン:Starterプラン以上)」とあり、「ページ単位でパスワード保護を設定することはできません。」とも書かれています。パスワードを入力したあとにブラウザを閉じると、もう一度入力が必要です。Personal の料金は「STUDIO の無料プランで独自ドメインは使える?」で 2026 年 10 月 12 日に確かめたものです。
  • Notion: Notion のヘルプは、「ページをパスワードで保護することはできますか?」に「残念ながら、現時点ではできません。」と答えています。相手が Notion のアカウントを持っていれば、招待して共有できます。
  • Tiiny Host: 料金ページのコードでは、パスワードの機能は Solo(月 $18、年払いなら年 $156)から含まれています。パスワード機能のページ(英語)では、ワンクリックでオンにできると説明しています。

Convika で HTML ページにパスワードをかける手順

Convika の無料アカウントを作る

app.convika.com で登録します。カード登録は要りません。

HTML のファイルをアップロードする

管理画面で「HTMLファイルをアップロードする」を押し、「ファイルから」のタブにファイルをドロップします。ChatGPT や Claude のコードをコピーした場合は、「コードから」のタブに貼り付けます。.html と .htm のファイルで、2 MB までです。「プレビューをつくる」を押すと、非公開のプレビューができます。この時点では、まだ誰にも公開されていません。

「サイト設定」でパスワードを設定する

サイト詳細の下のほうにある「サイト設定」の「閲覧パスワード」に、パスワードを入力して「パスワードを設定する」を押します。半角の英数字・記号・スペースで 8〜128 文字です。Pro なら、公開の前でもあとでも設定できます。まだ一度もページを公開していなければ、Free のままでも設定できます。このとき画面には、公開すると Pro を 14 日間無料で使えるようになり、最初の訪問からパスワードの入力画面が出ると表示されます。

公開する

「公開する」を押し、確認の画面でもう一度「公開する」を押します。yourpage.convika.com のようなアドレスで、パスワード付きのページが公開されます。docs.example.com のような自分のサブドメインで出すなら、サイト詳細の「ドメイン管理」からつなぎます。Free で 1 つ、Pro では数の上限がありません。

URL とパスワードを別々に伝える

URL はメールで、パスワードはチャットや電話で、というように別々に伝えます。URL だけを知った人には、パスワードの入力画面しか見えません。

見る人の画面

2026 年 10 月 13 日に、この方法で試しに 5 つのページにパスワードをかけ、ログインしていないブラウザと curl で開いて確かめました。

  • 自分のアドレスに、入力画面が出る。 「このページはパスワードで保護されています」という見出しと入力欄、「ページを表示する」のボタンが並ぶ画面です。サイト設定の言語が日本語のページなら、この画面も日本語で表示されます。
  • 正しいパスワードが入るまで、ページは届かない。 入力画面の応答には、ページのタイトルも本文も入っていませんでした。Convika は、パスワードをサーバーで確かめてからページを送ります。公開前にパスワードを設定したページも、公開した直後の最初の訪問から入力画面になりました。
  • 間違えたときは「パスワードが違います。確認して、もう一度入力してください。」と表示されます。同じ IP アドレスから 15 分の区切りの中で 10 回間違えると、しばらく待つよう表示されます。
  • 一度入力すれば、7 日間は入力なしで開ける。 再読み込みしても、入力画面は出ませんでした。
  • パスワードを変えると、全員が入力し直す。 「パスワードを変更する」のあとは、前のパスワードで開いていた人にも入力画面が出ます。「パスワードを外す」と、URL を知っている人なら誰でも開けるページに戻ります。
  • 検索エンジンに見えるのは入力画面だけ。 入力画面は検索結果に載せないよう指示していて、ページはサイトマップにも載りません。
  • 管理画面のプレビューには、パスワードがかからない。 自分で確かめるためのものなので、相手には公開したアドレスを送ります。
  • 公開し直しても、パスワードはそのまま。 パスワードを設定したあとに新しいバージョンを公開しても、入力画面が出ました。

Pro を続けなかったときは。 14 日間の無料期間が終わって Free に戻っても、パスワードはかかったままで、ページがひとりでに公開されることはありません。Free でもパスワードを外すことはでき、変更には Pro が必要です。

フォームとアクセス数も、パスワードの内側で

  • フォームは、パスワードを入れた人だけが送れる。 サイト詳細の「フォームを追加する」でページにフォームを付ければ、届いた内容を管理画面で見られます。Pro なら、毎月の件数に上限はありません。2026 年 10 月 13 日の確認では、パスワードを入れていないブラウザから送った内容は 401 で断られて保存されず、パスワードを入れた人が送った内容は管理画面に届きました。フォームの使い方は「AI で作ったページの問い合わせフォームに、送信内容が届くようにする方法」にあります。
  • アクセス数は、パスワードを通ったあとから数える。 入力画面だけを見て帰った人は数えません。入力画面で止まったブラウザが 1 つ、パスワードを入れて開いた人が 1 人という条件で確かめると、管理画面のページビューは 1、訪問者は 1 でした。数字の見方は「AI で作ったページのアクセス数と流入元を見る方法」にあります。

パスワード付きリンクとの違い

「パスワード付きリンク」をうたうツールの多くは、ページではなく URL を隠します。たとえば Link Lock の README には、パスワードが正しければ元の URL を取り出して、そこへ移動させる、とあります。移動先のページそのものにはパスワードがかかっていないので、元の URL を知った人はパスワードなしで開けます。ページそのものを守るなら、ページを置いたサーバー側でパスワードを確かめる方法を選びます。

目的別の選び方

  • Apache のレンタルサーバーをすでに借りている: Basic 認証。追加の費用なしで、サーバーがパスワードを確かめます。
  • 1 つのファイルを数人に見せるだけ: StatiCrypt(無料)。暗号化したファイルは手元で何度でも試せるので、長く推測されにくいパスワードにします。
  • ホームページ全体を Wix や STUDIO で作っている: それぞれのパスワード機能。STUDIO はサイト全体にしかかけられません。
  • 見る人ごとにログインさせたい、誰が開いたかを知りたい: Cloudflare Access のように、メールアドレスで本人を確かめる仕組み。Convika のパスワードはページごとに 1 つを共有する方式で、わかるのは訪問の数で、誰が見たかではありません。
  • ChatGPT や Claude で作った HTML を、自分のドメインでパスワード付きで見せたい。フォームとアクセス数もほしい: Convika。最初の公開から 14 日間は無料(カード登録なし)で、その後は Pro(月 $12)です。

よくある質問

HTML でパスワードをかけるにはどうしたらいいですか?

HTML だけではかけられません。サーバーでパスワードを確かめる(レンタルサーバーの Basic 認証か、パスワード機能のある公開サービス)か、StatiCrypt のようなツールでファイルを暗号化します。Convika なら、HTML をアップロードして「サイト設定」の「閲覧パスワード」でパスワードを設定し、公開するだけです。

パスワードの入力欄(input type="password")でページは守れますか?

守れません。<input type="password"> は、フォームの入力欄に打った文字を隠すだけのものです。ページを守るには、サーバーでパスワードを確かめるか、ページを暗号化します。

JavaScript でかけたパスワードは安全ですか?

安全ではありません。パスワードもページの本文も、ブラウザが受け取るファイルの中にあります。「ページのソースを表示」で読めますし、JavaScript をオフにすれば入力欄も出ません。パスワードは、サーバーで確かめる方法でかけます。

Google サイトにパスワードをかける方法は?

Google サイトには、パスワードの機能がありません。Google のヘルプによると、公開の設定で [制限付き] を選び、見せたい人を名前かメールアドレスで追加すると、その人たちにだけ共有できます。メールアドレスを知らない相手にも見せるなら、パスワードをかけられる公開サービスを使います。Google サイトの無料プランでできることは「Google サイトは無料で使える?」にまとめています。

Wix で特定のページにパスワードを設定するには?

英語版の Wix のヘルプによると、Wix ではページごとにパスワードを設定でき、サイト全体を 1 つのパスワードで守ることもできます。どのプランで使えるかは、ヘルプに書かれていません。ChatGPT や Claude で作った HTML のファイルは Wix にそのままアップロードできないので、HTML のまま見せるなら、パスワード機能のある公開サービスに置きます。

パスワード付きリンクとは何ですか?

URL を知っているだけでは開けず、パスワードを入れると開けるリンクのことです。ただ、ツールによって守っているものが違います。Link Lock のように URL を隠すだけのものは、元の URL を知られるとパスワードなしで開けます。Convika のパスワードは、ページを置いたアドレスそのものにかかります。

Notion のページにパスワードはかけられますか?

かけられません。Notion のヘルプは「ページをパスワードで保護することはできますか?」に「残念ながら、現時点ではできません。」と答えています。相手が Notion のアカウントを持っていれば、招待して共有できます。

GitHub Pages にパスワードはかけられますか?

かけられません。GitHub のドキュメントによると、リポジトリがプライベートでも、GitHub Pages のサイトはインターネット上で一般公開されます。見る人を絞るには GitHub Enterprise Cloud が必要で、開けるのはリポジトリの読み取りアクセスを持つ人だけです。

Netlify のパスワード保護は無料で使えますか?

使えません。Netlify のドキュメントによると、サイト全体にかけるパスワードは Pro(月 $20)からで、Free では使えません。ログインせずに Netlify Drop にドラッグしたサイトにかかる仮のパスワードは別のもので、Netlify のクイックスタートによると、ログインしてサイトを引き取るまでのものです。

無料でパスワード付きのページを作れますか?

作れます。StatiCrypt は無料で、暗号化したファイルはどこにでも置けます。すでにレンタルサーバーを借りているなら、Basic 認証も追加の費用なしで使えます。Convika は、最初のページを公開した日から 14 日間、カード登録なしで Pro を使え、その間はパスワードも無料です。続けるなら Pro(月 $12)です。

見せたい人にだけ、URL とパスワードを渡す

HTML のファイルをアップロードし、「サイト設定」でパスワードを設定して公開します。公開したアドレスでは、正しいパスワードが入力されたときだけ Convika がページを送ります。

初めての公開から 14 日間は、カード登録なしで Pro を使えます。その後は月 $12