Wie erstelle ich CA-Zertifikate für Firefox Trust System?

29

Unser Netzwerkadministrator hat kürzlich die HTTPS-Überprüfung für unsere Firewall / Router aktiviert. Für IE-Benutzer ist dies in Ordnung, da die Zertifikate für domänenverbundene Computer alle über Active Directory verteilt wurden. Es gibt jedoch eine Reihe von Firefox-Benutzern, die jetzt auf praktisch jeder HTTPS-Site Zertifikatfehler auslösen.

Firefox verwendet einen eigenen CA-Store und sie sind auch sehr stolz darauf . Gibt es eine Möglichkeit, Firefox dazu zu bringen, dem Systemzertifikatsspeicher standardmäßig zu vertrauen? Ich sehe eine Menge Beiträge dazu, wie man das unter Linux macht, aber nichts für Windows.

Ich vermute aus diesem Beitrag, dass es nicht möglich ist, aber dieser Beitrag ist fast 4 Jahre alt.

Wes Sayeed
quelle

Antworten:

46

Seit Firefox 49 werden Windows-Zertifizierungsstellenzertifikate und Active Directory-Unternehmensstammzertifikate teilweise unterstützt, seit Firefox 52. Ab Version 63 wird das Lesen aus dem Schlüsselbund auch in macOS unterstützt.

Seit Firefox 68 ist diese Funktion standardmäßig in der ESR-Version (Enterprise) aktiviert, jedoch nicht in der (Standard-) Schnellversion.

Sie können diese Funktion für Windows und MacOS aktivieren, about:configindem Sie diesen booleschen Wert erstellen:

security.enterprise_roots.enabled

und setze es auf true.

Für GNU / Linux wird dies normalerweise von p11-kit-trust verwaltet und es wird kein Flag benötigt.

Bereitstellen des Konfigurationssystems im gesamten System

Seit Firefox 64 gibt es eine neue und empfohlene Methode zur Verwendung von Richtlinien, die unter https://support.mozilla.org/en-US/kb/setting-certificate-authorities-firefox dokumentiert ist

Bei älteren Versionen kann der Firefox-Installationsordner aus der Windows-Registrierung abgerufen werden. Wechseln Sie dann in das defaults\pref\Unterverzeichnis und erstellen Sie eine neue Datei mit den folgenden Angaben :

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

Speichern Sie es mit der .jsErweiterung, z trustwincerts.js. B. und starten Sie Firefox neu. Der Eintrag wird about:configfür alle Benutzer in angezeigt.

Systemweite Bereitstellung von Windows-Zertifikaten

In Firefox von 49 bis 51 wird nur der "Root" -Store unterstützt. Seit Firefox 52 werden auch andere Stores unterstützt, einschließlich solcher, die über AD aus der Domain hinzugefügt wurden.

Dies liegt zwar etwas außerhalb des Bereichs, erklärt jedoch, dass dies der einzige von Firefox unterstützte Zertifikatspeicher für die Versionen 49 bis 51 oder nur für lokale Tests war. Da dies für alle lokalen Computerbenutzer bereitgestellt wird, sind Administratorrechte in Ihrem CMD / PowerShell-Fenster oder in Ihrem eigenen automatisierten Bereitstellungsskript erforderlich:

certutil -addstore Root path\to\cafile.pem

Dies kann auch über die Verwaltungskonsole erfolgen, indem Sie auf viele Fenster klicken, wenn Sie die Maus bevorzugen ( Gewusst wie: Anzeigen von Zertifikaten mit dem MMC-Snap-In ).


quelle
Wissen Sie, in welchen Zertifikatspeicher das Zertifikat geladen werden muss, damit dies funktioniert?
ETL
@ETL Ich habe nur mit dem Trust Store des lokalen Computersystems getestet, was gut ist, da es mit allen Computerkonten funktioniert. Laut der in einer anderen Antwort erwähnten Mozilla-Wiki-Seite wird erwartet, dass die vollständige Zertifizierungsunterstützung (einschließlich AD-Zertifikaten) in Firefox 52 abgeschlossen ist. Standardmäßig zeigt certmgr.msc den Benutzer-Zertifizierungsspeicher an, Sie müssen ihn jedoch dem lokalen Computer-Zertifizierungsspeicher hinzufügen. Sie können auch Windows certutil verwenden (nicht mit Mozillas NSS certutil verwechseln), um es bereitzustellen.
Arg. Ich habe das Zertifikat installiert (ich füge sie mithilfe von Gruppenrichtlinien den vertrauenswürdigen Stammzertifizierungsstellen des lokalen Computers hinzu). Ich habe die Firefox-Option aktiviert, aber das Zertifikat wird für FF 50.1 immer noch nicht verwendet. Hast du denn deine Zertifikate?
ETL
2
Die Checkliste lautet: 1: Firefox listet keine Windows-Zertifikate unter Erweitert -> Zertifikate auf, sollte aber trotzdem als vertrauenswürdig funktionieren. 2: Das Serverzertifikat muss mit dieser Zertifizierungsstelle erstellt werden. Die direkte Verwendung einer Zertifizierungsstelle als Serverzertifikat funktioniert nicht. 3: Das Serverzertifikat muss ordnungsgemäß generiert werden und die CA-Richtlinien für alternative Antragstellernamen erben. 4: Falls der Certstore der falsche ist, versuchen Sie, Microsoft Certutil zu verwenden. Das mache ich in einem Administrator-Cmd-Fenster: certutil -addstore Root path\to\cafile.pem(oder .crt)
1
Dies wird auch im Mozilla Wiki erwähnt .
Franklin Yu
2

Haben Sie darüber nachgedacht, diese Zertifikate sowohl für Firefox als auch für den Windows-Zertifikatspeicher bereitzustellen?

https://wiki.mozilla.org/CA:AddRootToFirefox führt einige Optionen auf:

  1. Ändern Sie die Zertifikatsdatenbank direkt mit certutil.
  2. Verwenden Sie die Autokonfigurationsfunktion von Firefox, indem Sie eine Javascript-Datei neben die Binärdatei stellen, um die Zertifikate hinzuzufügen:

    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. Verteilen Sie die Zertifikatsdatenbankdateien direkt.
  4. Paket Firefox für die Installation, einschließlich der Zertifikate in Ihrer Distribution.
  5. Verwenden Sie CCK2 , um eine Erweiterung zu erstellen, mit der die Zertifikate hinzugefügt werden .
wfaulk
quelle
1

Es gibt keine gute Möglichkeit, die Verwendung des Systemspeichers zu erzwingen, aber es gibt eine nette Problemumgehung (erzwingen Sie die Verwendung eines benutzerdefinierten Firefox-kompatiblen Speichers).

Das unten stehende Skript funktioniert gut beim An- und Abmelden.

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
}
Tim Brigham
quelle
Sie können eine Idee wie diese sogar erweitern und die aktuelle Liste der vertrauenswürdigen Zertifikate aus dem Windows-Store herunterladen und die Datei cert8.db mithilfe des in der Antwort von wfaulk angegebenen Mozilla-Zertifikats direkt generieren.
Ryan Bolger
1

Es gibt ein kostenloses Projekt , mit dem Firefox-Stammzertifikate mithilfe von Gruppenrichtlinien verwaltet werden können. Sie können Stammzertifikate in der Firefox-Datenbank installieren oder entfernen.

Slipeer
quelle