Я хочу добавить несколько корневых ЦС, которые не поставляются с Firefox по умолчанию в Ubuntu, но я не знаю как.
Я попытался добавить их в локальные сертификаты certutil
, но это не сработало. Это испортило мою базу данных сертификатов.
$ certutil -A -d .mozilla/firefox/kek3dogy.default/ -i /usr/local/share/ca-certificates/FNMT_ACRAIZ.crt -n "Certificado Raiz FNMT" -t "TCu,Cuw,Tuw"
а потом
$ certutil -L -d .mozilla/firefox/kek3dogy.default/
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
Go Daddy Secure Certification Authority ,,
VeriSign Class 3 Secure Server CA - G3 ,,
VeriSign Class 3 Extended Validation SSL CA ,,
DigiCert High Assurance CA-3 ,,
GlobalSign Domain Validation CA - G2 ,,
GeoTrust SSL CA ,,
StartCom Class 2 Primary Intermediate Server CA ,,
Google Internet Authority ,,
Certificado Raiz FNMT CT,C,c
USERTrust Legacy Secure Server CA ,,
HP Jetdirect 2B0EAD20 ,,
Akamai Subordinate CA 3 ,,
VeriSign, Inc. ,,
Thawte SGC CA ,,
VeriSign Class 3 Secure Server CA - G2 ,,
Сертификат не будет отображаться в Firefox. Я пробовал это несколько раз, даже удаляя профиль, и он один раз обнаружился на интерфейсе Firefox, но совершенно пустой.
В любом случае, это только для пользователя, и я хочу добавить их в масштабе всей системы. Есть ли общесистемная база данных, которую я могу изменить? Как?
Если нет общесистемной базы данных, которую я могу изменить, я могу положиться на стартовый скрипт X (как /etc/X11/Xsession.d/
таковой или скрипт, вызываемый системой автозапуска xdg /etc/xdg/autostart/
) для изменения профиля пользователя при запуске сеанса, но мне нужно решение, которое работает. Я даже не могу загрузить сертификаты на профили пользователей из командной строки!
источник
profiles.ini
? Затем вы можете добавить свои изменения к нему, а затем скопировать его иprofiles.ini
в каждый каталог пользователя.firefox -p
- но сначала вы должны закрыть Firefox.Ответы:
Проблема в том, что у Firefox нет «центрального» расположения, где он ищет сертификаты. Просто смотрит в текущий профиль. Вот почему изменение
/usr/share/ca-certificates
или другие подобные каталоги не будут работать с Firefox. Это то, что запрашивалось годами; см. выпуски 620373 , 449498 и 454036 (и, вероятно, есть много других).Таким образом, у вас есть только два вида решений: либо измените каждый профиль, либо измените поведение Firefox. Я знаю, что это не то, что вы ищете, но нет никаких путей, потому что Firefox просматривает только профили пользователей.
Сказав это, я бы выбрал решение с использованием жестких или символических ссылок, в частности, я бы использовал жесткие ссылки. Это решение, безусловно, самое простое и, вероятно, лучше, хотя у меня недостаточно информации, чтобы судить.
Что вам нужно сделать, это в основном удалить все
cert8.db
иkey3.db
файлы для каждого профиля и заменить их ссылками на «наиболее полный»cert8.db
иkey3.db
. Если вы идете с жесткими ссылками, оригиналcert8.db
иkey3.db
будет неотличим от новых.Не забудьте настроить разрешения в соответствии с вашими потребностями. Скорее всего, вам нужно будет,
chmod a+rw
чтобы каждый мог добавить / удалить сертификат. Если вы хотите, чтобы только определенные пользователи могли добавлять / удалять сертификаты, вы можете создать группу, назначить две базы данных этой группе и дать+w
разрешение только группе.источник
Самый простой способ - импортировать сертификат в пример профиля Firefox, а затем скопировать cert8.db пользователям, которым вы хотите предоставить сертификат.
Сначала импортируйте сертификат вручную в профиль firefox пользователя-образца. Затем скопируйте
в профили пользователей Firefox. Вот и все. Если вы хотите убедиться, что новые пользователи получают сертификат автоматически, скопируйте
cert8.db
в:Вот альтернативный способ, который не отменяет существующие сертификаты: [фрагмент bash для систем Linux]
Вы можете найти certutil в пакете libnss3-tools (debian / ubuntu).
Смотрите также: Программный импорт сертификата CA
Источник: программно установить сертификат в Mozilla
источник
Вопреки распространенному мнению, вы можете заставить Firefox просматривать системные сертификаты вместо своего собственного жестко запрограммированного набора.
Для этого вам понадобится пакет под названием p11-kit . p11-kit обеспечивает замену
libnssckbi.so
общей библиотеки, содержащей жестко закодированный набор сертификатов. Версия p11-kit вместо этого считывает сертификаты из системного хранилища сертификатов.Поскольку Firefox поставляется с собственной версией
libnssckbi.so
, вам нужно отследить и заменить ее вместо версии, представленной в libnss3:Затем удалите
~/.pki
каталог, чтобы Firefox обновлял свою базу данных сертификатов (заставляя его извлекать системные сертификаты) после перезапуска Firefox. Примечание: это удалит все существующие сертификаты в хранилище, поэтому, если есть пользовательские сертификаты, которые вы добавили вручную, вы можете создать резервную копию этой папки и затем повторно импортировать их.источник
dpkg-divert
шаг, чтобы избежать повторной перезаписи файла APT при обновлении пакета Firefox.Одной из функций дополнения Firefox мастера CCK является импорт сертификатов CA. Я использую это дополнение для создания пользовательского дополнения, в которое входит компания CA Cert. Затем я упаковываю пользовательский xpi в .deb во внутреннем репозитории, с которого все рабочие станции получают обновления.
CCK Wizard
РЕДАКТИРОВАТЬ: Чтобы упаковать xpi для Ubuntu, вам нужно создать пакет, который включает в себя каталог / usr / lib / firefox-addons / extensions / [addon-name @ servername] и разархивировать все содержимое xpi в этот каталог , Например, если вы называете свой аддон foobarbaz и сервер, с которого он настроен для обновления (если вы должны были включить эту функцию), является intranet.example.com, то каталог будет foobarbaz@intranet.example.com. Я никогда не включаю автоматическое обновление, а вместо этого обновляю deb в репо.
источник
Firefox работает после чистой установки. Если база данных сертификатов в
cert8.db
удалена, она восстанавливается при следующем запуске Firefox. Это настоятельно предполагает наличие общесистемного хранилища сертификатов CA по умолчанию.Исходный код Firefox показывает, что встроенные сертификаты CA фактически жестко запрограммированы в
firefox
исполняемый файл. Они находятся в security / nss / lib / ckfw / builtins / certdata.txtТаким образом, нет способа установить сертификат для всей системы. Помните, что исправление исходного кода может вызвать проблемы с правами интеллектуальной собственности.
источник
Я использую приложение «User Environment Virtualization» (UEV), которое делает это для моих пользователей, но вы можете сделать это с помощью сценариев входа в Windows-клиенты точно так же. Я не буду публиковать весь код для динамического поиска пути% APPDATA% \ Mozilla \ Firefox \% PROFILE%, но когда вы его найдете, вы можете импортировать сценарии с помощью некоторых основных команд. Я в основном читаю файл Firefox profiles.ini, чтобы определить путь к профилю Firefox / cert8.db.
Вы можете посмотреть на использование приложения certutil.exe. https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/tools/NSS_Tools_certutil
Вы можете запускать сценарии входа для пользователей, которые автоматически импортируют доверенные сертификаты из центрального расположения в Firefox всех пользователей системы.
Вот «ядро» моего скрипта импорта сертификата vb:
источник
Я обнаружил, что большую часть времени и по умолчанию, если не настроен иначе, Firefox использует устаревшие базы данных безопасности (cert8.db, key3.db и secmod.db), что означает, что вам нужно будет использовать другую командную строку для введения сертификата в правильная база данных, которую использует Firefox. (см. больше от человека certutil)
поэтому, если ваша система использует базу данных по умолчанию, команда должна выглядеть следующим образом: (dbm)
в противном случае это должно быть так: (sql)
от man certutil:
источник
certutil
командой сработало. Я искал для автоматизации однопользовательский сценарий установки, и это делает свое дело. Вам нужноapt-get install libnss3-tools
будет иметьcertutil
.