![Firefox がエラー「SEC_ERROR_INADEQUATE_KEY_USAGE」で IIS Express 証明書を拒否する](https://rvso.com/image/1606662/Firefox%20%E3%81%8C%E3%82%A8%E3%83%A9%E3%83%BC%E3%80%8CSEC_ERROR_INADEQUATE_KEY_USAGE%E3%80%8D%E3%81%A7%20IIS%20Express%20%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E6%8B%92%E5%90%A6%E3%81%99%E3%82%8B.png)
IIS Express で .Net Core Web アプリケーションを実行しています。
Chrome は HTTPS バージョンを問題なく閲覧できます。最近まで Firefox も同様でした。突然、次のエラーが表示されるようになりました。
安全な接続に失敗しました
localhost:44358 への接続中にエラーが発生しました。試行した操作には証明書キーの使用が不十分です。エラー コード: SEC_ERROR_INADEQUATE_KEY_USAGE
また、自己署名証明書のエラーとは異なり、証明書を受け入れたり、「とにかく続行」したりする方法はありません。
私が試してみました:
- Firefox の証明書ストアの再生成 (cert9.db と cert8.db の削除)
- IISExpress.exe の修復
- IISExpress.exe のアンインストールと再インストール
- Visual Studio の更新 (2019)
答え1
Visual Studioは独自のCAを生成し、Web開発用にWindows証明書ストアにインストールします。Firefoxを次のように構成できます。Windows 証明書ストアから CA をインポートするFirefox で security.enterprise_roots.enabled (旧 ImportEnterpriseRoots) 設定を有効にします。
Firefox で Windows 証明書ストアの使用を有効にするには、次の手順を実行します。
- Firefoxを開く
- 「about:config」に移動します
- 「ImportEnterpriseRoots」を検索
- 追加してtrueに設定する
- Firefoxを再起動します
答え2
ウェブサイトに、サーバーの証明書ストアに存在しない証明書を使用するように構成された HTTPS バインディングがある場合、このエラーが発生する可能性がありますSEC_ERROR_INADEQUATE_KEY_USAGE
。接続を検査すると (ロック アイコンをクリックして)、証明書がないため、[証明書の表示] ボタンがないこともわかります。明らかに、これは Firefox で修正できるものではなく、サーバー側の問題です。
解決策としては、存在する有効な証明書を使用するようにバインディング (IIS または IIS Express 内) を変更します。