thunderbird.cfg trust ca root certificate

Мы только начали использовать автоконфигурацию Thunderbird и считаем ее действительно полезной для автоматического создания стандартных корпоративных учетных записей imap, smtp и ldap для каждого пользователя, запускающего почтовый клиент.

Однако , сервер ldap компании (фактически, контроллер домена Windows) использует сертификат, выданный нашим центром сертификации, которому Thunderbird, конечно, не доверяет. Как следствие, удаленная адресная книга ldap не синхронизируется до тех пор, пока сертификат CA не будет вручную импортирован и доверен.

Можно ли использовать уважаемый thunderbird.cfg для импорта и доверия корню ca?

Мы уже пробовали следующие два решения , но они явно ничего не сделали: возможно, они предназначены только для Firefox или неправильно настроены с нашей стороны.

  • пытается импортировать корневой сертификат CA и доверять ему:

     var Cc = Components.classes;
    var Ci = Components.interfaces;
    var certdb = Cc ["@ mozilla.org/security/x509certdb;1" visible.getService(Ci.nsIX509CertDB);
    var certdb2 = certdb;
    пытаться {
     certdb2 = Cc ["@ mozilla.org/security/x509certdb;1" visible.getService(Ci.nsIX509CertDB2);
    } catch (e) {}
    // Это должно быть содержимое сертификата без разрыва строки.
    cert = "MII ... ==";
    certdb.addCertFromBase64 (сертификат, «C, C, C»);
    

  • Обновление и решение.

    Мы не смогли понять метод 1. , но в конце концов добились успеха с методом 2. Ошибка заключалась в моем очевидном неправильном понимании предложения:

    третий параметр был удален из API и не должен быть Включено

    Я думал, что addCertFromBase64 нужно иметь только два параметра, тогда как он по-прежнему требует третьего параметра, даже если это всего лишь пустая строка. Редактирование команды на certdb.addCertFromBase64 (cert, "C, C, C", ""); действительно сработало.

    1
    задан 22 May 2017 в 18:25
    1 ответ

    Что касается метода 2. , параметр отсутствует. Работает следующий код (см. Последнюю строку):

    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","");
    
    0
    ответ дан 4 December 2019 в 04:53

    Теги

    Похожие вопросы