Як зробити сертифікати сертифіката сертифікованих систем Firefox?


29

Нещодавно наш адміністратор мережі ввімкнув перевірку HTTPS на нашому брандмауері / маршрутизаторі. Для користувачів IE це добре, оскільки всі серти були розповсюджені через Active Directory для машин, що приєднуються до домену. Однак у нас є декілька користувачів Firefox, які зараз викидають помилки сертифікатів практично на кожному HTTPS-сайті.

Firefox використовує власний магазин CA, і вони теж справді пишаються цим . Чи є спосіб заручити Firefox довірити зберігання системних сертифікатів за замовчуванням? Я бачу багато публікацій про те, як це зробити в Linux, але нічого для Windows.

З цієї посади я підозрюю, що це неможливо, але це повідомлення майже 4 роки.

Відповіді:


46

Оскільки Firefox 49 існує деяка підтримка сертифікатів Windows CA та підтримка корпоративних сертифікатів, що надаються Active Directory, починаючи з Firefox 52. Також він підтримується в macOS для читання з Keychain з версії 63.

Оскільки Firefox 68 ця функція включена за замовчуванням у версії ESR (Enterprise), але не у (стандартній) швидкій версії.

Ви можете ввімкнути цю функцію для Windows та macOS about:config, створивши це булеве значення:

security.enterprise_roots.enabled

і встановити його true.

Для GNU / Linux цим зазвичай керує p11-kit-trust і прапор не потрібен.

Розгортання системи конфігурації широко

З Firefox 64 існує новий і рекомендований спосіб використання політики, задокументованої на https://support.mozilla.org/en-US/kb/setting-certificate-authorities-firefox

Для застарілих версій папку встановлення Firefox можна отримати з реєстру Windows, потім перейдіть до defaults\pref\підкаталогу та створіть новий файл із наступним:

/* Allows Firefox reading Windows certificates */    
pref("security.enterprise_roots.enabled", true);

Збережіть його з .jsрозширенням, наприклад, trustwincerts.jsі перезапустіть Firefox. Запис з’явиться about:configдля всіх користувачів.

Розгортання системи сертифікатів Windows в цілому

У Firefox від 49 до 51 він підтримує лише магазин «Корінь». Оскільки Firefox 52, він підтримує інші магазини, в тому числі додані з домену через AD.

Це трохи поза сферою, але пояснює, що це єдиний магазин сертифікатів, підтримуваний Firefox для версій 49 до 51 або просто для локального тестування. Оскільки це використовується для всіх користувачів локальної машини, йому потрібні права адміністратора у вашому вікні CMD / PowerShell або у вашому власному сценарії автоматизованого розгортання.

certutil -addstore Root path\to\cafile.pem

Це також можна зробити з консолі управління, натиснувши багато вікон, якщо ви віддаєте перевагу способу миші ( Як: Переглянути сертифікати за допомогою оснащення MMC ).


Чи знаєте ви, в якому магазині сертифікатів потрібно завантажувати cert, щоб це працювало?
ETL

@ETL Я протестував лише в магазині локальних системних систем, що добре, оскільки це працює з усіма обліковими записами машин. Згідно зі сторінкою вікі Mozilla, згаданою в іншій відповіді, вони очікують на повну підтримку cert (включаючи certs AD) у Firefox 52. За замовчуванням certmgr.msc показує certstore користувача, але вам потрібно додати його до certstore локальної машини. Ви також можете використовувати Windows certutil (не плутати з NSS Certitil Mozilla) для його розгортання.

Арг. У мене є сертифікат (я додаю їх за допомогою групових політик до довірених кореневих органів сертифікації локальної машини). Я ввімкнув варіант Firefox, але сертифікат досі не використовується на FF 50.1. Це ти мав свої серти?
ETL

2
Контрольний список: 1: Firefox не перелічує сертифікати Windows у розділі Додатково -> Сертифікати, але повинен працювати як слід довіреним. 2: Сертифікат сервера повинен бути створений для цього ЦС, використовуючи ЦС безпосередньо, оскільки сертифікат сервера не працюватиме. 3: Сертифікат сервера повинен бути генерований належним чином, успадковуючи політику CA для альтернативних імен предмета. 4: якщо certstore невірний, спробуйте використовувати certutil Microsoft, я роблю це: у вікні cmd адміністратора: certutil -addstore Root path\to\cafile.pem(або .crt)

1
Про це також згадується в Mozilla Wiki .
Франклін Ю

2

Чи обмірковували ви розгортання цих сертифікатів у Firefox, а також у магазині cert Windows?

https://wiki.mozilla.org/CA:AddRootToFirefox деталізує кілька варіантів:

  1. Змініть базу даних сертифікатів безпосередньо, використовуючи certutil.
  2. Використовуйте функцію автоконфігурування Firefox, розмістивши файл JavaScript поруч із двійковим, щоб додати сертифікати:

    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) {}
    cert = "MIIHPT...zTMVD"; // This should be the certificate content with no line breaks at all.
    certdb2.addCertFromBase64(cert, "C,C,C", "");
    
  3. Безпосередньо поширюйте файли бази даних сертифікатів.
  4. Пакет Firefox для встановлення, включаючи сертифікати у вашому розповсюдженні.
  5. Використовуйте CCK2 для створення розширення, яке додає сертифікати.

1

Існує не дуже хороший спосіб впоратися із застосуванням системного магазину, але є приємний спосіб вирішення (змусити використовувати спеціалізований магазин, сумісний з Firefox).

Біт сценарію нижче добре працює при вході / відході.

Stop-Process -processname firefox

$DBPath="\\yourserver\yourshare\cert8.db"
$FirefoxProfiles=Get-ChildItem $Env:appdata\Mozilla\Firefox\Profiles     
$DB=Get-Item $DBPath    
ForEach ( $Profile in $FirefoxProfiles )
{
    $FullPath=join-path $Env:appdata\Mozilla\Firefox\Profiles $Profile
    Copy-Item $DB $FullPath
    $FullPath
}

Ви навіть можете розширити таку ідею і схопити поточний список надійних сертів із магазину Windows та генерувати файл cert8.db на льоту, використовуючи Mozilla certutil, на який посилається у відповіді wfaulk.
Райан Болгер

1

Існує безкоштовний проект, який надає можливість керувати кореневими сертифікатами Firefox за допомогою групової політики. Ви можете встановити або видалити кореневі сертифікати з бази даних Firefox.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.