Эта запись опубликована
23.06.2009 в 9:05. Рубрики: SCCM, безопасность. Вы можете следить
за ответами к этой записи через RSS 2.0.
Вы можете оставить отзыв или трекбек со своего сайта.


Автоматический импорт корневого сертификата в Firefox
Расширение использования внутрикорпоративных сервисов, де-факто, являющихся Web приложениями, растет день ото дня. Это и порталы Sharepoint и Project server, и Exchange OWA. Не говоря уже о десятках самописных решений.
И каждый подобный сервис рано или поздно приходит к той точке развития, когда ценность данных начинает подразумевать полностью защищенный доступ даже изнутри сетевого периметра. То есть, использование SSL.
И все было бы хорошо, если каждая компаний являлась общепризнанным центром сертификации. Но, разумеется, это не так.
А это значит, что каждый браузер каждого пользователя каждой рабочей станции будет выводить уведомление о том, что сертификат узла, к которому обращается пользователь, не является выданным доверенным издателем.
Да, конечно же, будет странным предположить, что в крупной сети на клиентов не распространена доменная политика, указывающая правильный путь к светлому будущему
Но, увы, браузеры альтернативные Internet Explorer, оказываются полностью бессильны и при обращении к внутренним ресурсам, вновь выдают ошибку доверия к предъявленному сервером сертификату.
Итак, нашей задачей является автоматизация импорта доверенного корневого сертификата в локальное хранилище сертификатов FireFox. Для ее решения нам понадобятся некоторые дополнительные компоненты:
- Netscape Portable Runtime (NSPR). Подробную информацию и версию на свой вкус можно скачать по данной ссылке: http://www.mozilla.org/projects/nspr/ Для ускорения процесса, выберем предварительно откомпилированное решение.
- Network Security Services (NSS). Подробную информацию и версию на свой вкус можно скачать по данной ссылке: http://www.mozilla.org/projects/security/pki/nss/. Для ускорения процесса, выберем предварительно откомпилированное решение.
Из обоих дистрибутивов скопируем содержимое папок lib в отдельную пустую папку, например, c:\cadd. Затем отыщем внутри папки bin пакета NSS файл certutil.exe и также скопируем его в выбранную нами директорию.
Теперь нам нужно экспортировать необходимый для добавления сертификат корневого центра (в зависимости от архитектуры сети это также может быть сертификат дочернего центра, непосредственно выдавшего все сертификаты в организации). Сделать это можно на любой рабочей станции сети, запустив оснастку «Сертификаты». Сохраним экспортированный сертификат в ту же самую папку c:\cadd
Осталось самое интересное
При помощи созданного нами пакета библиотек, модифицируем базу сертификатов FireFox. Правда, сначала нам необходимо понять, где же эта база находится:
- Для систем за базе Windows XP профиль пользователя, содержащий в том числе и базу сертификатов, находится по пути %APPDATA%\Mozilla\Firefox\Profiles\[некоторое заранее неизвестное имя].default\
- Для систем на базе Windows Vista путь, собственно говоря, точно такой же, вся разница появляется на этапе его преобразования токена %APPDATA% в абсолютное значение:
- Для XP абсолютный путь, как правило выглядит так: C:\Documents and Settings\username\Application Data\
- Для Vista, обычно, так: C:\Users\username\AppData\Roaming\
Таким образом, как мы видим, в полном пути до профиля FireFox у нас есть две переменных в пути: папки username и [некоторое заранее неизвестное имя].default
Впрочем, мы можем упростить свою задачу, посчитав, что запускаем скрипт для модификации базы с ключами из-под того пользователя, для которого нам и необходимо эту модификацию осуществить. В этом случае, неизвестная переменная в пути остается всего одна и мы можем написать, к примеру, следующий командный сценарий (c:\cadd\cadd.cmd):
for /D /R «%APPDATA%\Mozilla\Firefox\Profiles» %%f in (*.default) do certutil.exe -A -n LibertineCA -t «TCu,Cu,Tuw» -d «%%f» -i c:\cadd\LibertineCA.cer
Да-да. Это действительно все. Остается только лишь перезапустить FireFox и убедиться, что сертификат корневого цента успешно добавлен в доверенные.
В принципе, на этом можно и остановиться. Ведь нет ни малейшей проблемы при помощи sccm создать соответствующий пакет с запуском от имени текущего вошедшего на рабочую станцию пользователя.
А можно пойти дальше ![]()
Изменим наш командный сценарий следующим образом:
for /D %%f in («C:\Documents and Settings\*») do for /D %%z in («%%f\Application Data\Mozilla\Firefox\Profiles\*.default») do certutil.exe -A -n LibertineCA -t «TCu,Cu,Tuw» -d «%%z» -i c:\cadd\LibertineCA.cer
for /D %%f in («C:\Users\*») do for /D %%z in («%%f\AppData\Roaming\Mozilla\Firefox\Profiles\*.default») do certutil.exe -A -n LibertineCA -t «TCu,Cu,Tuw» -d «%%z» -i c:\cadd\LibertineCA.cer
Несколько неэстетично, зато, достаточно надежно. Теперь создадим пакет установки в sccm и запланируем его запуск от имени локального администратора на всех рабочих станциях домена.
3 комментария на «Автоматический импорт корневого сертификата в Firefox»
Ваш отзыв


31 Авг 2009 в 23:57
Мозгопарство, почему бы не выложить уже готовый сертификат...
02 Сен 2009 в 12:19
А куда выложить, простите?
Есть проблема: FireFox мало заботит, какие там корневые центры сертификации добавлены групповой политикой в качестве доверенных для рабочей станции и пользователя. Он проверяет свой встроенный список, с учетом сертификатов, добавленных пользователем.
Я с удовольствием выслушаю другое готовое решение, как на 250 рабочих станциях за 15-20 минут добавить центр сертификации в доверенные.
Конечная цель достаточно проста: обеспечить пользователям комфортную безопасную работу, а сотрудникам техподдержки отсутствие лишней нагрузки из-за телефонных консультаций.
10 Дек 2009 в 17:17
Спасибо большое! очень помогает в работе.