
Я создал собственный корневой центр сертификации для внутренней сети example.com. В идеале я хотел бы иметь возможность развернуть сертификат CA, связанный с этим центром сертификации, на моих клиентах Linux (работающих под управлением Ubuntu 9.04 и CentOS 5.3), чтобы все приложения автоматически распознавали центр сертификации (т. е. я не хочу вручную настраивать Firefox, Thunderbird и т. д., чтобы доверять этому центру сертификации).
Я попытался сделать это в Ubuntu, скопировав сертификат CA в кодировке PEM в /etc/ssl/certs/ и /usr/share/ca-certificates/, а также изменив /etc/ca-certificates.conf и повторно запустив update-ca-certificates, однако приложения, похоже, не распознают, что я добавил в систему еще один доверенный CA.
Следовательно, возможно ли добавить сертификат CA один раз в систему или необходимо вручную добавлять CA во все возможные приложения, которые будут пытаться устанавливать SSL-подключения к хостам, подписанным этим CA в моей сети? Если возможно добавить сертификат CA один раз в систему, куда его нужно добавить?
Спасибо.
решение1
Короче говоря: вам нужно обновить каждое приложение отдельно.
Даже Firefox и Thunderbird не используют общие сертификаты.
К сожалению, в Linux нет центрального места для хранения/управления SSL-сертификатами. В Windows такое место есть, но в итоге вы сталкиваетесь с той же проблемой (Firefox/Thunderbird не будут использовать API, предоставляемый Windows, для определения действительности SSL-сертификата).
Я бы использовал что-то вроде puppet/cfengine на каждом хосте и разместил необходимые корневые сертификаты на всех клиентах с помощью механизмов, предоставляемых этими инструментами.
решение2
К сожалению, такие программы, как Firefox и Thunderbird, используют свою собственную базу данных.
Однако вы можете написать скрипт, чтобы найти все профили, а затем добавить сертификат. Вот инструмент для добавления сертификата: http://www.mozilla.org/projects/security/pki/nss/tools/certutil.html
Вы также можете настроить файл cert8.db по умолчанию, чтобы новые профили тоже его получили.
Для других приложений вопрос заключается в том, поддерживают ли они центральное хранилище или нет.
решение3
Указанный вами метод обновит центральный /etc/ssl/certs/ca-certificates.crt. Однако вы обнаружите, что большинство приложений не настроены на использование этого файла. Большинство приложений можно настроить так, чтобы они указывали на центральный файл. Не существует автоматического способа заставить все использовать этот файл без их перенастройки.
Возможно, стоит отправить отчеты об ошибках в Ubuntu/Debian, чтобы использовать этот файл по умолчанию.
решение4
Вы можете добавить свои собственные PKI CA в Ubuntu и другие дистрибутивы: Вот ссылка, которая может оказаться полезной: Управление сертификатами Linux