Jak zrobić certyfikaty CA systemu zaufania Firefox?

29

Nasz administrator sieci niedawno włączył kontrolę HTTPS na naszej zaporze ogniowej / routerze. Dla użytkowników IE jest to w porządku, ponieważ wszystkie certyfikaty zostały rozpowszechnione za pośrednictwem usługi Active Directory dla komputerów przyłączonych do domeny. Mamy jednak wielu użytkowników Firefoksa, którzy teraz zgłaszają błędy certyfikatów praktycznie na każdej stronie HTTPS.

Firefox korzysta z własnego sklepu CA i są z niego naprawdę dumni . Czy istnieje sposób, aby Firefox domyślnie ufał systemowemu systemowi certyfikatów? Widzę wiele postów na temat tego, jak to zrobić w systemie Linux, ale nic nie dotyczy Windows.

Podejrzewam, że z tego postu jest to niemożliwe, ale ten post ma prawie 4 lata.

Wes Sayeed
źródło

Odpowiedzi:

46

Od wersji Firefox 49 dostępna jest pewna obsługa certyfikatów CA systemu Windows oraz obsługa certyfikatów głównych dla przedsiębiorstw w usłudze Active Directory od wersji Firefox 52. Od wersji 63 obsługiwane jest także w systemie macOS.

Od wersji Firefox 68 ta funkcja jest domyślnie włączona w wersji ESR (korporacyjnej), ale nie w (standardowej) szybkiej wersji.

Możesz włączyć tę funkcję w systemie Windows i macOS about:config, tworząc następującą wartość logiczną:

security.enterprise_roots.enabled

i ustaw na true.

W przypadku GNU / Linux jest to zwykle zarządzane przez p11-kit-trust i nie jest wymagana flaga.

Wdrażanie całego systemu konfiguracji

Od wersji Firefox 64 istnieje nowy i zalecany sposób korzystania z zasad, udokumentowany na stronie https://support.mozilla.org/en-US/kb/setting-certificate-authorities-firefox

W przypadku starszych wersji folder instalacyjny przeglądarki Firefox można pobrać z rejestru systemu Windows, a następnie przejść do defaults\pref\podkatalogu i utworzyć nowy plik z następującymi elementami:

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

Zapisz go z .jsrozszerzeniem, np. trustwincerts.jsI uruchom ponownie Firefox. Wpis pojawi się about:configdla wszystkich użytkowników.

Wdrażanie certyfikatów systemu Windows w całym systemie

W przeglądarce Firefox od 49 do 51 obsługuje tylko sklep „Root”. Od Firefox 52 obsługuje inne sklepy, w tym te dodane z domeny za pośrednictwem AD.

Jest to nieco poza zakresem, ale wyjaśnia, który był jedynym magazynem certyfikatów obsługiwanym przez Firefoksa dla wersji od 49 do 51 lub tylko dla testów lokalnych. Ponieważ dotyczy to wszystkich użytkowników komputerów lokalnych, wymaga uprawnień administratora w oknie CMD / PowerShell lub we własnym skrypcie automatycznego wdrażania:

certutil -addstore Root path\to\cafile.pem

Można to również zrobić z poziomu konsoli zarządzania, klikając wiele okien, jeśli wolisz mysz ( Porady: wyświetlanie certyfikatów za pomocą przystawki MMC ).


źródło
Czy wiesz, w którym magazynie certyfikatów należy załadować certyfikat, aby to działało?
ETL,
@ETL Testowałem tylko w magazynie zaufanych systemów lokalnych, co jest dobre, ponieważ działa ze wszystkimi kontami komputerów. Według strony wiki Mozilli wspomnianej w innej odpowiedzi, oczekują oni pełnego wsparcia dla certyfikatów (w tym certyfikatów AD) w Firefoksie 52. Domyślnie certmgr.msc wyświetla magazyn certyfikatów użytkownika, ale należy go dodać do lokalnego magazynu certyfikatów komputera. Możesz również użyć certyfikatu systemu Windows (nie mylić z certyfikatem NSS Mozilli), aby go wdrożyć.
Arg. Mam certyfikat (dodaję je za pomocą zasad grupy do Zaufanych głównych urzędów certyfikacji komputera lokalnego). Włączyłem opcję Firefox, ale certyfikat nadal nie jest używany w FF 50.1. Czy to były twoje certyfikaty?
ETL,
2
Lista kontrolna to: 1: Firefox nie wyświetla certyfikatów Windows w Zaawansowane -> Certyfikaty, ale i tak powinien działać jako zaufany. 2: Certyfikat serwera musi zostać utworzony za pomocą tego urzędu certyfikacji, przy użyciu urzędu certyfikacji bezpośrednio, ponieważ certyfikat serwera nie będzie działać. 3: Certyfikat serwera musi zostać poprawnie wygenerowany, dziedzicząc zasady CA dla alternatywnych nazw podmiotów. 4: w przypadku, gdy magazyn certyfikatów jest niewłaściwy, spróbuj użyć certyfikatu Microsoft, robię to: w oknie cmd administratora: certutil -addstore Root path\to\cafile.pem(lub .crt)
1
Jest to również wspomniane w Mozilla Wiki .
Franklin Yu
2

Czy zastanawiałeś się nad wdrożeniem tych certyfikatów w Firefoksie, a także w magazynie certyfikatów Windows?

https://wiki.mozilla.org/CA:AddRootToFirefox szczegółowo kilka opcji:

  1. Zmodyfikuj bazę danych certyfikatów bezpośrednio, używając certutil.
  2. Użyj funkcji autokonfiguracji Firefoksa, umieszczając plik javascript obok pliku binarnego, aby dodać certyfikaty:

    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. Rozpowszechnij pliki bazy danych certyfikatów bezpośrednio.
  4. Spakuj Firefoksa do instalacji, w tym certyfikaty w twojej dystrybucji.
  5. Użyj CCK2, aby utworzyć rozszerzenie, które dodaje certyfikaty.
wfaulk
źródło
1

Nie ma dobrego sposobu na wymuszenie korzystania ze sklepu systemowego, ale istnieje przyjemne obejście (wymuszenie korzystania ze spersonalizowanego sklepu kompatybilnego z Firefox).

Poniższy fragment skryptu działa dobrze podczas logowania / wylogowywania.

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
źródło
Możesz nawet rozwinąć taki pomysł i pobrać aktualną listę zaufanych certyfikatów ze sklepu Windows i wygenerować plik cert8.db w locie, korzystając z certyfikatu Mozilla wymienionego w odpowiedzi wfaulk.
Ryan Bolger,
1

Istnieje bezpłatny projekt, który umożliwia zarządzanie certyfikatami root Firefox za pomocą zasad grupy. Możesz zainstalować lub usunąć certyfikaty główne z bazy danych Firefox.

Pantofelek
źródło