Come rendere certificati CA del sistema fidato di Firefox?


29

Il nostro amministratore di rete ha recentemente abilitato l'ispezione HTTPS sul nostro firewall / router. Per gli utenti di IE questo va bene perché i certificati sono stati tutti distribuiti tramite Active Directory per macchine appartenenti al dominio. Tuttavia, abbiamo un certo numero di utenti di Firefox che ora generano errori di certificato praticamente su ogni sito HTTPS.

Firefox utilizza il proprio negozio CA e ne sono anche molto orgogliosi . Esiste un modo per far sì che Firefox si fidi dell'archivio certificati di sistema per impostazione predefinita? Vedo molti post su come farlo in Linux, ma niente per Windows.

Sospetto da questo post che non sia possibile, ma quel post ha quasi 4 anni.

Risposte:


46

A partire da Firefox 49 esiste un certo supporto per i certificati CA di Windows e il supporto per i certificati radice aziendali forniti da Active Directory da Firefox 52. È supportato anche in macOS per leggere dal portachiavi dalla versione 63.

Da Firefox 68 questa funzione è abilitata per impostazione predefinita nella versione ESR (enterprise), ma non nella versione rapida (standard).

Puoi abilitare questa funzione per Windows e macOS about:configcreando questo valore booleano:

security.enterprise_roots.enabled

e impostarlo su true.

Per GNU / Linux, questo è generalmente gestito da p11-kit-trust e non è necessario alcun flag.

Distribuzione del sistema di configurazione a livello

Da Firefox 64, esiste un modo nuovo e consigliato utilizzando le politiche, documentato su https://support.mozilla.org/en-US/kb/setting-certificate-authorities-firefox

Per le versioni legacy, la cartella di installazione di Firefox può essere recuperata dal registro di Windows, quindi andare nella defaults\pref\sottodirectory e creare un nuovo file con il seguente:

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

Salvalo con .jsestensione, ad es. trustwincerts.jsE riavvia Firefox. La voce apparirà about:configper tutti gli utenti.

Distribuzione di certificati Windows a livello di sistema

In Firefox da 49 a 51, supporta solo l'archivio "Root". Da Firefox 52, supporta altri negozi, inclusi quelli aggiunti dal dominio tramite AD.

Questo è un po 'fuori portata ma spiega qual era l'unico archivio certificati supportato da Firefox per le versioni da 49 a 51 o solo per i test locali. Poiché questo viene distribuito per tutti gli utenti di macchine locali, richiede i privilegi di amministratore nella finestra CMD / PowerShell o nel proprio script di distribuzione automatica .:

certutil -addstore Root path\to\cafile.pem

Questo può essere fatto anche dalla console di gestione facendo clic su molte finestre se si preferisce il mouse ( Procedura: visualizzare i certificati con lo snap-in MMC ).


Sai in quale archivio certificati è necessario caricare il certificato per farlo funzionare?
ETL

@ETL Ho testato solo con l'archivio fiduciario del sistema della macchina locale, il che è buono in quanto funziona con tutti gli account della macchina. Secondo la pagina wiki di Mozilla menzionata in un'altra risposta, si aspettano di completare il supporto completo per i certificati (incluso certs AD) in Firefox 52. Per impostazione predefinita, certmgr.msc mostra certstore utente, ma è necessario aggiungerlo al certstore della macchina locale. Puoi anche usare il certutil di Windows (non confonderlo con il certutil NSS di Mozilla) per distribuirlo.

Arg. Ho il certificato in atto (li sto aggiungendo utilizzando Criteri di gruppo alle autorità di certificazione radice attendibili del computer locale). Ho attivato l'opzione Firefox ma il certificato non è ancora utilizzato su FF 50.1. Eri tu che avessi i tuoi certificati?
ETL,

2
L'elenco di controllo è: 1: Firefox non elenca i certificati di Windows in Avanzate -> Certificati, ma dovrebbe comunque funzionare come attendibile. 2: Il certificato del server deve essere creato con tale CA, utilizzando direttamente una CA poiché il certificato del server non funzionerà. 3: Il certificato del server deve essere generato correttamente, ereditando i criteri CA per nomi alternativi soggetto. 4: nel caso in cui il certstore sia sbagliato, prova a usare il certutil di Microsoft, lo faccio: in una finestra cmd amministratore: certutil -addstore Root path\to\cafile.pem(o .crt)

1
Questo è anche menzionato in Mozilla Wiki .
Franklin Yu,

2

Hai preso in considerazione l'implementazione di tali certificati su Firefox e nell'archivio certificati di Windows?

https://wiki.mozilla.org/CA:AddRootToFirefox dettagli alcune opzioni:

  1. Modificare direttamente il database dei certificati utilizzando certutil.
  2. Usa la funzione di configurazione automatica di Firefox, posizionando un file javascript accanto al file binario, per aggiungere i certificati:

    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. Distribuire direttamente i file del database dei certificati.
  4. Pacchetto Firefox per l'installazione, inclusi i certificati nella distribuzione.
  5. Utilizzare CCK2 per creare un'estensione che aggiunge i certificati.

1

Non c'è un buon modo per forzare l'uso dell'archivio di sistema, ma c'è una bella soluzione (forzare l'uso di un negozio compatibile con Firefox personalizzato).

Il bit di script qui sotto funziona bene al login / disconnessione.

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
}

Potresti anche espandere un'idea come questa e estrarre l'attuale elenco di certificati attendibili dall'archivio di Windows e generare al volo il file cert8.db usando il certutil di Mozilla a cui fa riferimento la risposta di wfaulk.
Ryan Bolger,

1

Esiste un progetto gratuito che offre la possibilità di gestire i certificati radice di Firefox utilizzando i criteri di gruppo. È possibile installare o rimuovere i certificati di root dal database di Firefox.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.