Мы только начали использовать автоконфигурацию 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", "");
действительно сработало.
Что касается метода 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","");