thunderbird.cfg trust ca certificado raiz

1

Acabamos de começar a usar a autoconfiguração do Thunderbird e achamos realmente útil criar automaticamente as contas padrão imap, smtp e ldap da empresa para cada usuário que inicia o cliente de email.

No entanto , o servidor ldap da empresa (na verdade, um controlador de domínio do Windows) usa um certificado emitido pela nossa Autoridade de Certificação da empresa, que obviamente não é confiável para o Thunderbird. Como conseqüência, o catálogo de endereços remotos do ldap não sincroniza até que o certificado ca seja importado e confiável manualmente.

O caro thunderbird.cfg pode ser empregado para importar e confiar em um ca raiz?

Já testamos as duas duas soluções , e aparentemente elas não fizeram nada: talvez elas sejam apenas para o Firefox ou não sendo configurado corretamente em nossa parte.

  1. tentando confiar nas raízes confiáveis do sistema operacional Windows:

    pref("security.enterprise_roots.enabled, true");
    
  2. tentando importar e confiar no certificado raiz raiz:

    var Cc = Components.classes;
    var Ci = Components.interfaces;
    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) {}
    // This should be the certificate content with no line breaks at all.
    cert = "MII ... ==";
    certdb.addCertFromBase64(cert, "C,C,C");
    

Atualizar e uma solução.

Não foi possível descobrir o método 1. , mas obtivemos sucesso no final com o método 2. O erro foi meu aparente erro de compreensão da frase:

the third parameter has been removed from the API and should not be included

Eu achei que addCertFromBase64 precisava ter apenas dois parâmetros, enquanto ainda é necessário um terceiro parâmetro, mesmo que seja apenas uma string em branco. A edição do comando para certdb.addCertFromBase64(cert, "C,C,C",""); funcionou.

    
por simlev 22.05.2017 / 16:59

1 resposta

0

Quanto ao método 2. , um parâmetro está faltando. O código a seguir funciona (veja a última linha):

var Cc = Components.classes;
var Ci = Components.interfaces;
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) {}
// This should be the certificate content with no line breaks at all.
cert = "MII ... ==";
certdb.addCertFromBase64(cert, "C,C,C","");
    
por 17.11.2017 / 13:02