thunderbird.cfg доверие к корневому сертификату
Мы только начали использовать автоконфигурацию Thunderbird и считаем ее действительно полезной для автоматического создания стандартных учетных записей imap, smtp и ldap для каждого пользователя, который запускает почтовый клиент.
Однако сервер ldap компании (фактически контроллер домена Windows) использует сертификат, выданный центром сертификации нашей компании, который, конечно, не является доверенным для Thunderbird. Как следствие, удаленная адресная книга ldap не синхронизируется до тех пор, пока сертификат CA не будет импортирован и доверен вручную.
Может дорогой thunderbird.cfg
быть нанятым для импорта и доверия к корню?
Мы уже опробовали следующие два решения, и они, по-видимому, ничего не сделали: возможно, они предназначены только для Firefox или неправильно настроены с нашей стороны.
пытаясь доверять корням, которым доверяет операционная система Windows:
pref("security.enterprise_roots.enabled, true");
пытаемся импортировать и доверять корневому сертификату ca:
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");
Обновление и решение.
Мы не могли понять метод 1.
, но были успешны в конце концов с методом 2.
Ошибка была в моем явном недопонимании предложения:
третий параметр был удален из API и не должен быть включен
я думал addCertFromBase64
Нужно иметь только два параметра, тогда как для него все еще требуется третий параметр, даже если это всего лишь пустая строка. Редактирование команды на certdb.addCertFromBase64(cert, "C,C,C","");
сделал работу.
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","");