社内ネットワークで内部ドメイン「.local」を使用している環境で、Microsoft Edgeから内部Webサイトにアクセスすると、「ERR_CERT_NON_UNIQUE_NAME」というエラーが表示されることがあります。このエラーは、証明書のSubject Alternative Name(SAN)にアクセスに使用するホスト名が適切に含まれていないことが原因です。本記事では、証明書のホスト名を適正化してこのエラーを解消する手順を解説します。
【要点】内部.localドメインでの「ERR_CERT_NON_UNIQUE_NAME」を解消するホスト名適正化のポイント
- 証明書の再発行: 証明書のSANにアクセスに使用するホスト名(短い名前)と完全修飾ドメイン名(FQDN)の両方を追加します。
- ブラウザキャッシュのクリア: 再発行後、Edgeの証明書キャッシュをクリアして新しい証明書を読み込ませます。
- 暫定対応(非推奨): すぐに証明書を変更できない場合、Edgeの設定で証明書の失効確認を無効にすることでエラーを回避できますが、セキュリティは低下します。
ADVERTISEMENT
「ERR_CERT_NON_UNIQUE_NAME」が発生する原因
EdgeはHTTPS接続時に、サーバーから提示された証明書のSANをチェックします。ブラウザのアドレスバーに入力したホスト名が、SAN内のいずれかのエントリと一致しない場合、このエラーが発生します。内部.localドメインでは、ユーザーがホスト名のみでアクセスすることが多いため、証明書にFQDNが含まれていないとエラーになります。また、同じホスト名を持つ証明書が複数存在する場合もエラーの原因となります。
具体的には、証明書のCNに「fileserver」と設定され、SANに何も追加されていないケースや、SANに「fileserver.contoso.local」のみで短い名前がないケースで発生します。さらに、証明書テンプレートのデフォルト設定がCNのみをサブジェクトとする場合、CAが自動生成した証明書にSANが含まれないことが原因です。同一サーバーに複数の証明書がインストールされている場合も、競合によりエラーが起きます。
内部CAが発行する証明書のサブジェクト名は、Active Directoryのコンピュータ名に依存することが多いです。デフォルトではコンピュータ名のみがCNに設定され、DNSサフィックスが付与されないため、FQDNがSANに含まれません。管理者が証明書要求時にSANを明示的に追加していないケースがほとんどです。
さらに、ブラウザが証明書の検証を行う際、EdgeはWindowsの証明書ストアだけでなく、インターネット一時ファイルやCookieにもキャッシュを持ちます。そのため、証明書を更新した後も古い情報が残っているとエラーが続くことがあります。
Edgeは証明書の検証にWindowsのCryptoAPIを利用します。Windowsは証明書ストア内のすべての証明書をチェックし、アクセス先のホスト名と証明書のSANを比較します。通常、CN(共通名)は使用されなくなり、SANが優先されます。そのため、CNのみでSANがない証明書はエラーになります。また、同一ホスト名を持つ証明書が複数ある場合も、「非一意な名前」としてエラーになります。
証明書のホスト名適正化手順
1. 現在の証明書の内容を確認する
- Edgeで証明書を表示します
エラーが発生するURLにアクセスし、アドレスバーの鍵アイコンをクリックします。「接続はセキュアです」を選択し、「証明書」をクリックします。「詳細」タブで「サブジェクト代替名」フィールドを確認します。そこに記載されたホスト名の一覧と、実際にアクセスに使っているホスト名を比較します。 - サーバー側の証明書ストアを確認します
サーバーにログインし、certlm.msc(ローカルコンピュータ証明書)を開きます。「個人」ストアにインストールされている証明書をダブルクリックし、「詳細」タブでSANを確認します。同じホスト名を持つ重複証明書がないかもチェックします。
2. 内部CAで新しい証明書を発行する
- 証明書テンプレートを選択します
内部CAの管理コンソール(certsrv.msc)で、使用する証明書テンプレートがSANをサポートしているかを確認します。「Webサーバー」テンプレートは通常SANに対応しています。必要に応じてテンプレートを複製し、SAN許可の設定を有効にします。 - 証明書要求(CSR)を生成します
サーバー上でIISマネージャーを開き、サーバー証明書の「証明書要求の作成」からCSRを生成します。共通名(CN)にはホスト名(例:fileserver)を入力します。その後、証明書要求のプロパティで「サブジェクト代替名」を追加し、fileserver.contoso.local(FQDN)も含めます。opensslを使用する場合は、設定ファイルにsubjectAltName=DNS:fileserver,DNS:fileserver.contoso.localと記述します。 - CAに証明書を発行してもらいます
生成したCSRをファイルに保存し、内部CAのWeb enrollmentページ(http://ca-server/certsrv)にアップロードするか、mmcスナップインを使って要求を送信します。CA管理者が承認後、証明書をダウンロードします。
3. 新しい証明書をサーバーに適用する
- 証明書をインストールします
ダウンロードした証明書(.cerファイル)をサーバーに保存し、IISマネージャーの「サーバー証明書」セクションで「証明書の完了」を選択してインストールします。 - Webサイトのバインドを変更します
該当のWebサイトを選択し、「バインド」を編集します。HTTPSのバインドで、先ほどインストールした証明書を選択します。既存の証明書と置き換わっていることを確認します。 - サービスの再起動
IIS全体を再起動するには、管理者コマンドプロンプトでiisresetを実行します。または、該当のアプリケーションプールを再起動します。
4. クライアント側のEdgeでキャッシュをクリアする
- Edgeの閲覧データを削除します
Edgeの設定画面を開き、「プライバシー、検索、サービス」>「閲覧データをクリアする」>「クリアするデータの選択」で「キャッシュされた画像とファイル」と「Cookieとその他のサイトデータ」にチェックを入れます。期間は「全期間」を選択し、「今すぐクリア」をクリックします。 - 証明書キャッシュを削除します
管理者としてコマンドプロンプトを開き、certutil -urlcache * deleteを実行して、端末にキャッシュされたすべての証明書を削除します。その後、Edgeを再起動して該当サイトにアクセスします。
5. 証明書テンプレートの設定を見直す
- テンプレートの複製と変更
CAの管理コンソールで「証明書テンプレート」ノードを開き、既存の「Webサーバー」テンプレートを右クリックして複製します。新しいテンプレートの「サブジェクト名」タブで、「サブジェクト代替名にDNS名を含める」にチェックを入れます。また、「要求に含まれる」オプションも選択し、CSRにSANを含められるようにします。 - テンプレートを発行します
複製したテンプレートを「証明書テンプレート」フォルダに追加し、CAの「証明書テンプレートの追加」で一覧に表示されるようにします。その後、テンプレートのセキュリティ権限で、証明書を要求するユーザーやコンピュータに「読み取り」と「登録」を許可します。
注意点と代替対処法
証明書を再発行してもエラーが消えない場合
まず、複数の証明書に同じホスト名が含まれていないか確認します。サーバー側の個人ストアに不要な証明書があれば削除し、該当の証明書だけが正しいSANを持っている状態にします。また、クライアント端末の証明書ストア(certmgr.msc)にも古い証明書が残っている場合は削除します。
さらに、Edgeの内部DNS設定やイントラネットゾーンの設定が影響している可能性もあります。インターネットオプションの「セキュリティ」タブで「ローカルイントラネット」ゾーンに該当サイトを追加してみてください。ただし、この方法は根本解決ではありません。
一時的な回避策(セキュリティを低下させます)
証明書の再発行がすぐにできない場合、Edgeの証明書失効確認を無効にすることでエラーを一時的に回避できます。インターネットオプションの「詳細設定」タブで「サーバー証明書の失効を確認する」のチェックを外します。この設定は社内ネットワークのみに限定して適用することを強くお勧めします。なお、この操作は管理者権限が必要で、グループポリシーで強制されている場合は変更できません。
旧証明書の削除手順
サーバーの証明書ストアから古い証明書を削除するには、certlm.mscを開き、該当する証明書を右クリックして「削除」を選択します。削除後は必ずIISを再起動してください。クライアント端末でも同様に、certmgr.msc(ユーザー証明書)またはcertlm.msc(コンピュータ証明書)で不要な証明書を削除します。
イベントログの確認
問題が解決しない場合、イベントビューアーで「アプリケーションとサービスログ」>「Microsoft」>「Windows」>「CertificateServices」のログを確認します。証明書の検証エラーに関するイベントID 47や48が記録されていることがあります。これらのログは、原因特定の手がかりになります。
他のブラウザでの挙動
Google ChromeやFirefoxでも同様のエラーが発生することがあります。エラーメッセージは異なる場合もありますが、根本原因は証明書のSAN不足です。したがって、証明書の適正化はすべてのブラウザに有効です。
ADVERTISEMENT
証明書のホスト名設定によるエラー発生の比較
| 項目 | ホスト名のみの証明書 | FQDNを含む証明書 |
|---|---|---|
| エラー発生条件 | ホスト名アクセスでエラー | エラーなし |
| 対応する接続方法 | FQDNアクセスのみ可能 | ホスト名・FQDN双方対応 |
| ブラウザ互換性 | Edgeでエラーが出る | 全ブラウザで正常 |
| 推奨度 | 非推奨 | 推奨 |
| 管理の手間 | 低い(手軽だがトラブルあり) | 中程度(CSRでSAN指定が必要) |
まとめ
本記事では、内部.localドメインでEdgeに「ERR_CERT_NON_UNIQUE_NAME」が表示される問題の原因と、証明書のホスト名適正化手順を解説しました。原因は証明書のSANにアクセスに使うホスト名が不足していることです。解決するには、内部CAで証明書を再発行し、SANにホスト名とFQDNの両方を含め、クライアントのキャッシュをクリアします。次に、社内の他の内部Webサイトでも同様のエラーがないか確認し、証明書の適正化を進めてください。これにより、EdgeでのHTTPS接続が安定します。また、証明書テンプレートのデフォルト設定を修正しておくことで、再発を防止できます。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Windows・PCの人気記事ランキング
- 【Edge】起動時や新しいタブを「Google」にする設定!ニュースを消してシンプルにする方法
- 【直し方】F7でカタカナにならない!ファンクションキーが効かず音量などが変わる時のFnロック解除法
- 【Windows】標準アプリのショートカットアイコンが白い紙になった時の情報の更新
- 【Windows】「ゲーミングサービス」がインストールできない!Xboxアプリとの無限ループを脱出する修復コマンド
- 【Windows】デスクトップのアイコンが「白い紙」になった!アイコンキャッシュを削除して元に戻すコマンド
- 【Windows】パスワードなしで起動!PIN入力を省略して自動ログイン(サインイン)させる設定手順
- 【Windows】サブモニターが映らない!HDMIを挿しても「信号なし」になる時の認識・設定手順
- 【PC周辺】2台のモニターで壁紙を「別々」にする方法!Windows11での配置と調整
- 【Windows】音が出ない!スピーカーに×が付く・ミュート解除しても無音になる時の直し方5選
- 【Windows】デスクトップアイコンの「緑のチェック」は何?OneDriveの同期マークを非表示にする方法
