Como fazer com que o Firefox confie nos certificados de CA do sistema?

29

Nosso administrador de rede ativou recentemente a inspeção HTTPS em nosso firewall / roteador. Para usuários do IE, isso é bom porque todos os certificados foram distribuídos pelo Active Directory para máquinas ingressadas no domínio. No entanto, temos vários usuários do Firefox que estão lançando erros de certificado em praticamente todos os sites HTTPS.

O Firefox usa sua própria loja de CA, e eles também se orgulham . Existe alguma maneira de fazer o Firefox confiar no armazenamento de certificados do sistema por padrão? Eu vejo muitas postagens sobre como fazer isso no Linux, mas nada no Windows.

Eu suspeito neste post que não é possível, mas esse post tem quase 4 anos.

Wes Sayeed
fonte

Respostas:

46

Desde o Firefox 49, existe algum suporte para certificados de CA do Windows e suporte para certificados raiz corporativos fornecidos pelo Active Directory desde o Firefox 52. Também é suportado no macOS a leitura do Keychain desde a versão 63.

Desde o Firefox 68, esse recurso é ativado por padrão na versão ESR (corporativa), mas não na liberação rápida (padrão).

Você pode ativar esse recurso para Windows e macOS about:config, criando este valor booleano:

security.enterprise_roots.enabled

e defina-o true.

Para o GNU / Linux, isso geralmente é gerenciado pelo p11-kit-trust e nenhum sinalizador é necessário.

Implementando o Sistema de Configuração em Todo o Sistema

Desde o Firefox 64, existe uma maneira nova e recomendada usando políticas, documentadas em https://support.mozilla.org/en-US/kb/setting-certificate-authorities-firefox

Para versões herdadas, a pasta de instalação do Firefox pode ser recuperada do registro do Windows, vá para o defaults\pref\subdiretório e crie um novo arquivo com o seguinte:

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

Salve-o com .jsextensão, por exemplo, trustwincerts.jse reinicie o Firefox. A entrada será exibida about:configpara todos os usuários.

Implantando certificados do Windows em todo o sistema

No Firefox, de 49 a 51, ele suporta apenas a loja "Root". Desde o Firefox 52, ele suporta outras lojas, incluindo aquelas adicionadas do domínio via AD.

Isso está um pouco fora do escopo, mas explica qual foi o único repositório de certificados suportado pelo Firefox nas versões 49 a 51 ou apenas para testes locais. Como isso é implantado para todos os usuários da máquina local, requer privilégios de administrador na janela do CMD / PowerShell ou no seu próprio script de implantação automatizada:

certutil -addstore Root path\to\cafile.pem

Isso também pode ser feito no Console de Gerenciamento, clicando em várias janelas, se você preferir o modo do mouse ( como: exibir certificados com o snap-in do MMC ).


fonte
Você sabe em qual armazenamento de certificados o certificado precisa ser carregado para que isso funcione?
ETL
@ETL Testei apenas com o armazenamento confiável do sistema de máquinas locais, o que é bom, pois funciona com todas as contas de máquinas. De acordo com a página wiki da Mozilla mencionada em outra resposta, eles esperam concluir o suporte completo a certificados (incluindo certificados AD) no Firefox 52. Por padrão, certmgr.msc mostra o certstore do usuário, mas você precisa adicioná-lo ao certstore da máquina local. Você também pode usar o Windows certutil (não confunda com o Certutil NSS da Mozilla) para implantá-lo.
Arg. Eu tenho o certificado no lugar (estou adicionando-os usando Diretivas de Grupo às Autoridades de Certificação Raiz Confiáveis ​​da máquina local). Ativei a opção Firefox, mas o certificado ainda não é usado no FF 50.1. Foi assim que você teve seus certificados?
ETL
2
A lista de verificação é: 1: O Firefox não lista os certificados do Windows em Avançado -> Certificados, mas deve funcionar como confiável de qualquer maneira. 2: O certificado do servidor deve ser criado com essa autoridade de certificação, usando uma autoridade de certificação diretamente, pois o certificado do servidor não funcionará. 3: O certificado do servidor deve ser gerado corretamente, herdando políticas da CA para nomes alternativos de assunto. 4: caso o certstore seja o errado, tente usar o certutil da Microsoft, faça o seguinte: em uma janela de cmd do Administrador: certutil -addstore Root path\to\cafile.pem(ou .crt)
11
Isso também é mencionado no Mozilla Wiki .
Franklin Yu
2

Você já pensou em implantar esses certificados no Firefox e também no armazenamento de certificados do Windows?

https://wiki.mozilla.org/CA:AddRootToFirefox detalha algumas opções:

  1. Modifique o banco de dados do certificado diretamente usando certutil.
  2. Use o recurso de configuração automática do Firefox, colocando um arquivo javascript ao lado do binário, para adicionar os certificados:

    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. Distribua os arquivos do banco de dados do certificado diretamente.
  4. Empacote o Firefox para instalação, incluindo os certificados em sua distribuição.
  5. Use o CCK2 para criar uma extensão que adiciona os certificados.
wfaulk
fonte
1

Não existe uma boa maneira de lidar com o uso do armazenamento do sistema, mas há uma boa solução alternativa (force o uso de um armazenamento compatível com o Firefox personalizado).

O bit de script abaixo funciona bem no login / logoff.

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
fonte
Você pode até expandir uma idéia como essa e pegar a lista atual de certificados confiáveis ​​da loja do Windows e gerar o arquivo cert8.db em tempo real usando o Mozilla certutil mencionado na resposta do wfaulk.
Ryan Bolger 16/09
1

Existe um projeto gratuito que fornece a capacidade de gerenciar certificados raiz do Firefox usando políticas de grupo. Você pode instalar ou remover certificados raiz do banco de dados do Firefox.

Slipeer
fonte