Comment créer des certificats d'autorité de certification de système de confiance Firefox?


29

Notre administrateur réseau a récemment activé l'inspection HTTPS sur notre pare-feu / routeur. Pour les utilisateurs d'IE, c'est très bien car les certificats ont tous été distribués via Active Directory pour les machines jointes au domaine. Cependant, nous avons un certain nombre d'utilisateurs de Firefox qui lancent maintenant des erreurs de certificat sur pratiquement tous les sites HTTPS.

Firefox utilise son propre magasin CA et ils en sont très fiers aussi . Existe-t-il un moyen pour que Firefox approuve le magasin de certificats système par défaut? Je vois beaucoup de messages sur la façon de procéder sous Linux, mais rien pour Windows.

Je soupçonne de ce post que ce n'est pas possible, mais ce post a presque 4 ans.

Réponses:


46

Depuis Firefox 49, il existe une prise en charge des certificats d'autorité de certification Windows et une prise en charge des certificats racine d'entreprise fournis par Active Directory depuis Firefox 52. Il est également pris en charge dans macOS pour lire à partir du trousseau depuis la version 63.

Depuis Firefox 68, cette fonctionnalité est activée par défaut dans la version ESR (entreprise), mais pas dans la version rapide (standard).

Vous pouvez activer cette fonctionnalité pour Windows et macOS en about:configcréant cette valeur booléenne:

security.enterprise_roots.enabled

et réglez-le sur true.

Pour GNU / Linux, ceci est généralement géré par p11-kit-trust et aucun indicateur n'est nécessaire.

Déploiement du système de configuration à l'échelle

Depuis Firefox 64, il existe un moyen nouveau et recommandé d'utiliser des politiques, documenté à https://support.mozilla.org/en-US/kb/setting-certificate-authorities-firefox

Pour les versions héritées, le dossier d'installation de Firefox peut être récupéré à partir du registre Windows, puis accédez au defaults\pref\sous-répertoire et créez un nouveau fichier avec les éléments suivants:

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

Enregistrez-le avec l' .jsextension, par exemple trustwincerts.jset redémarrez Firefox. L'entrée apparaîtra about:configpour tous les utilisateurs.

Déploiement de certificats Windows à l'échelle du système

Dans Firefox de 49 à 51, il ne prend en charge que le magasin "Root". Depuis Firefox 52, il prend en charge d'autres magasins, y compris ceux ajoutés à partir du domaine via AD.

C'est un peu hors de portée mais explique qui était le seul magasin de certificats pris en charge par Firefox pour les versions 49 à 51 ou juste pour les tests locaux. Parce que cela se déploie pour tous les utilisateurs de la machine locale, il nécessite des privilèges d'administrateur dans votre fenêtre CMD / PowerShell ou dans votre propre script de déploiement automatisé .:

certutil -addstore Root path\to\cafile.pem

Cela peut également être fait à partir de la console de gestion en cliquant sur un grand nombre de fenêtres si vous préférez la souris ( Comment: afficher les certificats avec le composant logiciel enfichable MMC ).


Savez-vous dans quel magasin de certificats le certificat doit être chargé pour que cela fonctionne?
ETL

@ETL J'ai testé uniquement avec le magasin de confiance du système d'ordinateur local, ce qui est bien car il fonctionne avec tous les comptes d'ordinateur. Selon la page wiki de Mozilla mentionnée dans une autre réponse, ils s'attendent à compléter la prise en charge complète des certificats (y compris les certificats AD) dans Firefox 52. Par défaut, certmgr.msc affiche le certstore de l'utilisateur, mais vous devez l'ajouter au certstore de la machine locale. Vous pouvez également utiliser Windows certutil (ne pas confondre avec le certutil NSS de Mozilla) pour le déployer.

Arg. J'ai le certificat en place (je les ajoute en utilisant des stratégies de groupe aux autorités de certification racines de confiance de la machine locale). J'ai activé l'option Firefox mais le certificat n'est toujours pas utilisé sur FF 50.1. Est-ce que vous aviez vos certificats?
ETL

2
La liste de contrôle est la suivante: 1: Firefox ne répertorie pas les certificats Windows dans Avancé -> Certificats, mais devrait quand même fonctionner comme approuvé. 2: Le certificat de serveur doit être créé avec cette autorité de certification, en utilisant une autorité de certification directement comme certificat de serveur ne fonctionnera pas. 3: Le certificat de serveur doit être généré correctement, héritant des stratégies d'autorité de certification pour les autres noms de sujet. 4: dans le cas où le certstore est le mauvais, essayez d'utiliser le certutil de Microsoft, je le fais: dans une fenêtre d'administrateur cmd: certutil -addstore Root path\to\cafile.pem(ou .crt)

1
Ceci est également mentionné dans Mozilla Wiki .
Franklin Yu

2

Avez-vous envisagé de déployer ces certificats sur Firefox ainsi que sur le magasin de certificats Windows?

https://wiki.mozilla.org/CA:AddRootToFirefox détaille quelques options:

  1. Modifiez la base de données de certificats directement à l'aide de certutil.
  2. Utilisez la fonction de configuration automatique de Firefox, en plaçant un fichier javascript à côté du binaire, pour ajouter les certificats:

    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. Distribuez directement les fichiers de base de données de certificats.
  4. Package Firefox pour l'installation, y compris les certificats dans votre distribution.
  5. Utilisez CCK2 pour créer une extension qui ajoute les certificats.

1

Il n'y a pas un bon moyen de forcer l'utilisation du magasin système, mais il existe une bonne solution de contournement (forcer l'utilisation d'un magasin compatible avec Firefox personnalisé).

Le morceau de script ci-dessous fonctionne bien à la connexion / déconnexion.

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
}

Vous pouvez même développer une idée comme celle-ci et extraire la liste actuelle des certificats de confiance du magasin Windows et générer le fichier cert8.db à la volée en utilisant le certutil Mozilla référencé dans la réponse de wfaulk.
Ryan Bolger

1

Il existe un projet gratuit qui permet de gérer les certificats racine de Firefox à l'aide de stratégies de groupe. Vous pouvez installer ou supprimer des certificats racine de la base de données Firefox.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.