【Windows】開発用のローカルサーバーに安全ではない接続として拒否される時の設定

【Windows】開発用のローカルサーバーに安全ではない接続として拒否される時の設定
🛡️ 超解決

開発中のローカルサーバーにアクセスしようとした際、ブラウザから「安全ではない接続」と表示され、先に進めず困るビジネスマンは多いでしょう。この問題は、主に開発環境特有の証明書設定やブラウザのセキュリティ機能が原因で発生します。この記事では、Windows 11環境でローカルサーバーへのアクセス拒否を解決するための具体的な設定方法を解説します。

【要点】開発用ローカルサーバーの「安全ではない接続」を許可する設定

  • ブラウザの実験的機能フラグ設定: EdgeやChromeでローカルホストへの安全ではない接続を一時的に許可し、開発作業を継続できます。
  • 自己署名証明書の信頼設定: 作成した自己署名証明書をWindowsの信頼されたルート証明機関に登録し、HTTPS接続時の警告を恒久的に解消します。
  • HSTSキャッシュの解除: ブラウザにキャッシュされた過去のHTTPS接続情報を削除し、HTTP接続への切り替えを可能にします。

ADVERTISEMENT

開発用ローカルサーバーが安全ではない接続と判断される根本的な原因

開発用のローカルサーバー、例えばhttp://localhost:porthttps://127.0.0.1:portにアクセスする際、ブラウザが「安全ではない接続」と警告を出すことがあります。この警告は、主にセキュリティ上の理由から表示されます。

一般的な原因は、開発環境で利用するHTTPSの自己署名証明書が、ブラウザやWindowsによって信頼されていないことです。自己署名証明書は、公的な認証局から発行されたものではないため、そのままではセキュリティ警告の対象となります。

また、一度HTTPSでアクセスしたサイトの情報がブラウザにキャッシュされ、HTTP Strict Transport Security HSTSという仕組みにより、以降のHTTP接続が強制的にHTTPSにリダイレクトされるケースもあります。この場合、HTTPS接続が確立できないとアクセスが拒否される結果となります。

さらに、ブラウザ自体のセキュリティ設定が厳しすぎると、たとえローカル環境であっても安全ではないと判断されることがあります。これらの原因を理解し、適切な設定を行うことが重要です。

安全ではない接続を許可するための具体的な設定手順

開発用のローカルサーバーへの接続を許可するには、いくつかの方法があります。状況に応じて最適な手順を選びましょう。

ブラウザの実験的機能フラグ設定を一時的に緩和する

EdgeやChromeでは、開発者向けにローカルホストへの安全ではない接続を一時的に許可する設定があります。これは、証明書の問題を一時的に回避するのに役立ちます。

  1. EdgeまたはChromeのアドレスバーにURLを入力する
    Edgeの場合はedge://flags/、Chromeの場合はchrome://flags/と入力し、Enterキーを押します。
  2. 検索ボックスで設定項目を探す
    表示された画面上部の検索ボックスに「insecure localhost」と入力します。
  3. 設定を有効にする
    「Allow invalid certificates for resources loaded from localhost」という項目を見つけます。この項目のドロップダウンメニューから「Enabled」を選択します。
  4. ブラウザを再起動する
    画面右下に表示される「Relaunch」ボタンをクリックし、ブラウザを再起動します。

この設定は、ローカルホストからのリソース読み込み時に無効な証明書を許可するものです。開発作業が終了したら、セキュリティのためにも元の「Default」に戻すことを推奨します。

自己署名証明書をWindowsに信頼させる手順

開発環境でHTTPSを使用し、自己署名証明書を作成している場合、その証明書をWindowsに信頼させることで、ブラウザの警告を恒久的に解消できます。この手順は、Windows 11とWindows 10で同様です。

  1. 証明書をエクスポートする
    利用している開発ツールやサーバーから、自己署名証明書を.cer形式などのファイルとしてエクスポートします。具体的な手順は、使用しているツールによって異なります。
  2. 証明書管理ツールを開く
    Windowsの検索ボックスに「certmgr.msc」と入力し、証明書管理ツールを起動します。
  3. 信頼されたルート証明機関を開く
    左側のナビゲーションペインで「信頼されたルート証明機関」を展開し、「証明書」を右クリックします。
  4. 証明書のインポートウィザードを開始する
    コンテキストメニューから「すべてのタスク」を選択し、「インポート」をクリックします。証明書のインポートウィザードが起動します。
  5. 証明書ファイルを指定する
    「次へ」をクリックし、「参照」ボタンをクリックしてエクスポートした自己署名証明書ファイルを選択します。「次へ」をクリックします。
  6. 証明書ストアを指定する
    「証明書をすべて次のストアに配置する」を選択し、「参照」ボタンをクリックします。表示される「証明書ストアの選択」ダイアログで「信頼されたルート証明機関」を選択し、「OK」をクリックします。
  7. インポートを完了する
    「次へ」をクリックし、「完了」をクリックします。セキュリティ警告が表示された場合は「はい」を選択してインポートを許可します。

インポートが完了したら、ブラウザを再起動し、ローカルサーバーへのアクセスを試してください。警告が表示されなくなるはずです。

HSTS設定を解除する手順

ブラウザが過去にHTTPSでアクセスした情報を記憶し、HSTSによりHTTP接続を拒否している場合があります。この設定を解除することで、HTTPでのアクセスが可能になります。

  1. EdgeまたはChromeのアドレスバーにURLを入力する
    Edgeの場合はedge://net-internals/#hsts、Chromeの場合はchrome://net-internals/#hstsと入力し、Enterキーを押します。
  2. ドメインの削除を行う
    表示された画面の「Delete domain security policies」セクションを探します。「Domain」入力欄に、接続できないローカルサーバーのドメイン名、例えば「localhost」や「127.0.0.1」を入力します。
  3. ドメインを削除する
    「Delete」ボタンをクリックします。これにより、指定したドメインのHSTSキャッシュがブラウザから削除されます。
  4. ブラウザを再起動する
    ブラウザを完全に終了し、再度起動します。

この操作により、ブラウザは指定したドメインに対してHSTSポリシーを適用しなくなります。これにより、HTTPでのアクセスが試せるようになります。

設定変更後に発生しがちな問題とその対処法

上記の設定を行っても問題が解決しない場合や、別の問題が発生する場合があります。ここでは、よくあるトラブルとその対処法を解説します。

設定変更がブラウザに反映されない場合

ブラウザの設定を変更しても、すぐに反映されないことがあります。これは、ブラウザのキャッシュやプロセスが原因である可能性が高いです。

  • ブラウザのキャッシュをクリアする: ブラウザの設定から閲覧履歴データ、特にキャッシュされた画像とファイルを削除します。
  • ブラウザを完全に終了し再起動する: タスクマネージャーからEdgeやChromeのプロセスをすべて終了させ、再度ブラウザを起動します。
  • シークレットモードまたはプライベートモードで試す: 拡張機能やキャッシュの影響を受けないシークレットモードでアクセスを試します。

証明書を信頼しても「NET::ERR_CERT_INVALID」などのエラーが出る場合

自己署名証明書をWindowsにインポートしても、ブラウザで証明書エラーが解消されないことがあります。これは、証明書の内容に問題がある可能性があります。

  • 証明書のコモンネーム CNを確認する: 自己署名証明書が発行された際のコモンネームが、アクセスしようとしているローカルサーバーのアドレス例: localhostと完全に一致しているか確認します。一致しない場合は、証明書を再発行する必要があります。
  • 証明書の有効期限を確認する: 証明書が有効期限切れでないか確認します。期限切れの場合は、新しい証明書を再発行してインポートし直します。
  • 証明書が正しくインストールされているか確認する: 証明書管理ツールで「信頼されたルート証明機関」に証明書が正しく表示されているか再確認します。

Windows Defender ファイアウォールが通信をブロックしている可能性

まれに、Windows Defender ファイアウォールがローカルサーバーとの通信をブロックしていることがあります。特に、サーバーアプリケーションを初めて起動した場合に発生しやすいです。

  1. ファイアウォールの設定を開く
    Windowsの検索ボックスに「Windows Defender ファイアウォール」と入力し、アプリケーションを開きます。
  2. 詳細設定を開く
    左側のメニューから「詳細設定」をクリックします。
  3. 受信の規則を確認する
    「受信の規則」を選択し、ローカルサーバーが使用しているポート例: 80, 443, 3000などがブロックされていないか確認します。ブロックされている場合は、その規則を無効にするか、新しい規則を作成してポートを許可します。
  4. 新しい規則を作成する
    「新しい規則」をクリックし、ウィザードに従って特定のポートまたはプログラムへのアクセスを許可する規則を作成します。

ファイアウォール設定の変更はセキュリティに影響を与えるため、必要な範囲でのみ許可し、作業後は元の設定に戻すことを検討しましょう。

ADVERTISEMENT

Windows 11とWindows 10のブラウザ設定の違い

項目 Windows 11 Windows 10
Edgeのフラグ設定 edge://flags/からアクセスし「Allow invalid certificates for resources loaded from localhost」を有効にする edge://flags/からアクセスし「Allow invalid certificates for resources loaded from localhost」を有効にする
Chromeのフラグ設定 chrome://flags/からアクセスし「Allow invalid certificates for resources loaded from localhost」を有効にする chrome://flags/からアクセスし「Allow invalid certificates for resources loaded from localhost」を有効にする
証明書管理ツールの起動 検索ボックスに「certmgr.msc」と入力 検索ボックスに「certmgr.msc」と入力
HSTSキャッシュの削除 edge://net-internals/#hstsまたはchrome://net-internals/#hstsからドメインを削除する edge://net-internals/#hstsまたはchrome://net-internals/#hstsからドメインを削除する

Windows 11とWindows 10では、EdgeやChromeのブラウザ設定、およびWindowsの証明書管理ツールの操作手順に大きな違いはありません。どちらのOSでも、同じ手順でローカルサーバーへの安全ではない接続の問題を解決できます。

この記事で解説した手順を実行することで、開発用ローカルサーバーへの「安全ではない接続」の警告を解消し、スムーズに作業を進められます。ブラウザの実験的機能フラグ設定、自己署名証明書の信頼設定、HSTSキャッシュの解除など、状況に応じた方法を試してください。これらの設定を正しく適用し、開発環境での作業効率を高めましょう。

ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。