FirefoxにシステムCA証明書を信頼させる方法は?


29

ネットワーク管理者は最近、ファイアウォール/ルーターでHTTPS検査を有効にしました。IEユーザーの場合、ドメインに参加しているマシンのActive Directoryを介してすべての証明書が配布されているため、これは問題ありません。ただし、実際にはすべてのHTTPSサイトで証明書エラーをスローしているFirefoxユーザーが多数います。

Firefoxは独自のCAストアを使用しており、彼らもそれを誇りに思っています。Firefoxにデフォルトでシステム証明書ストアを信頼させる方法はありますか?Linuxでこれを行う方法に関する記事はたくさんありますが、Windowsには何もありません。

私はこの投稿からそれは不可能だと思うが、その投稿はほぼ4歳である。

回答:


46

Firefox 49以降、Windows CA証明書のサポートと、Firefox 52以降のActive Directory提供のエンタープライズルート証明書のサポートがあります。macOSでは、バージョン63以降のキーチェーンからの読み取りもサポートされています。

Firefox 68以降、この機能はESR(エンタープライズ)バージョンではデフォルトで有効になっていますが、(標準)ラピッドリリースでは有効になっていません。

about:configこのブール値を作成することにより、WindowsおよびmacOSでこの機能を有効にできます。

security.enterprise_roots.enabled

に設定しtrueます。

GNU / Linuxの場合、これは通常p11-kit-trustによって管理され、フラグは必要ありません。

構成システム全体に展開する

Firefox 64以降、ポリシーを使用することで、https://support.mozilla.org/en-US/kb/setting-certificate-authorities-firefoxに文書化された新しい推奨される方法があります。

レガシーバージョンの場合、FirefoxのインストールフォルダーをWindowsレジストリから取得し、defaults\pref\サブディレクトリに移動して次のファイルを作成します。

/* Allows Firefox reading Windows certificates */    
pref("security.enterprise_roots.enabled", true);

.js拡張子を付けて保存し、trustwincerts.jsFirefoxを再起動します。エントリはabout:configすべてのユーザーに表示されます。

システム全体にWindows証明書を展開する

49から51までのFirefoxでは、「ルート」ストアのみがサポートされます。Firefox 52以降、AD経由でドメインから追加されたストアを含む他のストアをサポートします。

これは少し範囲外ですが、Firefoxがバージョン49から51またはローカルテストのみでサポートする唯一の証明書ストアであったことを説明しています。これはすべてのローカルマシンユーザーに展開されるため、CMD / PowerShellウィンドウまたは独自の自動展開スクリプトで管理者権限が必要です。

certutil -addstore Root path\to\cafile.pem

これは、マウスを使用したい場合は、多くのウィンドウをクリックして管理コンソールから行うこともできます(方法:MMCスナップインで証明書を表示する)。


これが機能するには、どの証明書ストアに証明書をロードする必要があるか知っていますか?
ETL

@ETLローカルマシンシステムのトラストストアのみでテストしましたが、これはすべてのマシンアカウントで機能するため良好です。別の返信で言及されたMozilla wikiページによると、Firefox 52での完全な証明書サポート(AD証明書を含む)を完了することが期待されています。デフォルトでは、certmgr.mscはユーザーcertstore Windows certutil(MozillaのNSS certutilと混同しないでください)を使用して展開することもできます。

引数 証明書を用意しています(グループポリシーを使用して、ローカルマシンの信頼されたルート証明機関に証明書を追加しています)。Firefoxオプションをオンにしましたが、FF 50.1ではまだ証明書が使用されていません。それはあなたの証明書を持っていましたか?
ETL

2
チェックリストは次のとおりです。1:Firefoxは[詳細]-> [証明書]にWindows証明書をリストしませんが、とにかく信頼できるものとして機能するはずです。2:サーバー証明書は機能しないため、CAを直接使用してそのCAでサーバー証明書を作成する必要があります。3:サーバー証明書を適切に生成し、サブジェクトの別名のCAポリシーを継承する必要があります。4:管理者CMDウィンドウで:のCertStoreは間違ったものである場合には、Microsoftののcertutilを使用してみてください、私はこれを行うcertutil -addstore Root path\to\cafile.pem(または.CRT)

1
これはMozilla Wikiでも言及されています。
フランクリンゆう

2

これらの証明書をFirefoxとWindows証明書ストアに展開することを検討しましたか?

https://wiki.mozilla.org/CA:AddRootToFirefoxはいくつかのオプションを詳しく説明しています。

  1. を使用して証明書データベースを直接変更しますcertutil
  2. Firefoxのautoconfig機能を使用し、バイナリと一緒にjavascriptファイルを配置して、証明書を追加します。

    var certdb = Cc["@mozilla.org/security/x509certdb;1"].getService(Ci.nsIX509CertDB);
    var certdb2 = certdb;
    try {
        certdb2 = Cc["@mozilla.org/security/x509certdb;1"].getService(Ci.nsIX509CertDB2);
    } catch (e) {}
    cert = "MIIHPT...zTMVD"; // This should be the certificate content with no line breaks at all.
    certdb2.addCertFromBase64(cert, "C,C,C", "");
    
  3. 証明書データベースファイルを直接配布します。
  4. ディストリビューションの証明書を含め、インストール用にFirefoxをパッケージ化します。
  5. CCK2を使用して、証明書を追加する拡張機能を作成します。

1

システムストアの使用を強制する良い方法のハンドルはありませんが、素晴らしい回避策があります(カスタマイズされたfirefox互換ストアの使用を強制します)。

以下のスクリプトの一部は、ログイン/ログオフ時にうまく機能します。

Stop-Process -processname firefox

$DBPath="\\yourserver\yourshare\cert8.db"
$FirefoxProfiles=Get-ChildItem $Env:appdata\Mozilla\Firefox\Profiles     
$DB=Get-Item $DBPath    
ForEach ( $Profile in $FirefoxProfiles )
{
    $FullPath=join-path $Env:appdata\Mozilla\Firefox\Profiles $Profile
    Copy-Item $DB $FullPath
    $FullPath
}

このようなアイデアを拡張して、Windowsストアから信頼できる証明書の現在のリストを取得し、wfaulkの回答で参照されているMozilla certutilを使用してcert8.dbファイルをその場で生成することもできます。
ライアンボルガー

1

ある無料のプロジェクトグループポリシーを使用してFirefoxのルート証明書を管理する機能を提供します。Firefoxデータベースからルート証明書をインストールまたは削除できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.