Моя работа решила выпустить свой собственный центр сертификации (CA) для безопасной обработки различных аспектов нашей работы без оплаты сертификатов.
- Криптографически подписывать письма
- Шифровать содержимое электронной почты
- Сделайте доступ к таким вещам, как клиентские сертификаты IRC компании .
- Отзывать ключи бывших сотрудников автоматически
Они прислали мне .pem
файл, и я не уверен, как добавить его в мою установку Ubuntu. Были отправлены следующие инструкции: «Двойной щелчок по нему на Mac должен установить его».
Как мне продолжить? Нужно ли мне что - то делать с OpenSSL , чтобы создать .key
, .csr
или .crt
файл?
ubuntu
certificate
trusted-root-certificates
Xeoncross
источник
источник
Ответы:
Установка ЦС
Скопируйте свой сертификат в формате PEM (в том формате,
----BEGIN CERTIFICATE----
в котором он есть)/usr/local/share/ca-certificates
и назовите его с.crt
расширением файла.Тогда беги
sudo update-ca-certificates
.Предупреждения: эта установка влияет только на продукты, которые используют это хранилище сертификатов. Некоторые продукты могут использовать другие магазины сертификатов; Если вы используете эти продукты, вам необходимо добавить этот сертификат CA и в другие хранилища сертификатов. ( Firefox Инструкция , Chrome Инструкция , Java Инструкция )
Тестирование CA
Вы можете проверить, сработало ли это, посмотрев сертификат, который вы только что добавили
/etc/ssl/certs/ca-certificates.crt
(который представляет собой длинный список всех соединенных вместе доверенных ЦС).Вы также можете использовать s_client OpenSSL, пытаясь подключиться к серверу, который, как вы знаете, использует сертификат, подписанный только что установленным ЦС.
Первое, что нужно искать, это цепочка сертификатов в верхней части выходных данных. Это должно показать CA как эмитента (рядом с
i:
). Это говорит о том, что сервер представляет сертификат, подписанный устанавливаемым центром сертификации.Во-вторых, ищите
verify return code
в конце, чтобы быть установленным0 (ok)
.источник
crt
комментарий к расширению, который был секретом для получения этой работы для меня, я получил сертификат сcert
расширением и был смущен тем, почему ничего не работает.s_client
не отправлять SNI по умолчанию, и серверу может потребоваться SNI, особенно если он поддерживает виртуальные хосты / сайты с разными сертификатами; для этого случая добавить-servername foo.whatever.com
. Или если это веб- сервер (современные версии)curl
илиwget
который делает SNI автоматически.man update-ca-сертификаты :
Исходя из вышеизложенного, я могу сделать вывод, что предпочтительный способ получить локальные файлы сертификатов в надежном хранилище - поместить их в
/usr/local/share/ca-certificates
и запуститьupdate-ca-certificates
. Вам не нужно трогать/etc/ssl/certs
напрямую.источник
--fresh
чтобы заставить его работать. напримерupdate-ca-certificates --fresh
У меня была та же проблема, и мне пришлось скопировать
.pem
файл/usr/local/share/ca-certificates
, переименовав его в.crt
..cer
Файл может быть легко преобразован в.pem
, с OpenSSL, например, если вы не имеете.pem
.После копирования файла вы должны выполнить
sudo update-ca-certificates
.источник
openssl x509 -inform DER -in certificate.cer -out certificate.crt
Другие ответы относительно
update-ca-certificates
правильны для приложений, которые читают из системного хранилища сертификатов. Для Chrome и Firefox и, возможно, некоторых других, сертификат должен быть помещен в nssdb, бэкэнд для библиотеки NSS Mozilla.С https://code.google.com/p/chromium/wiki/LinuxCertManagement :
Где
<certificate nickname>
произвольно, и<certificate filename>
ваш файл .pem или .crt.Другие полезные ссылки:
certutil
Страница man, описывающая параметры, использованные выше: https://developer.mozilla.org/en-US/docs/NSS_reference/NSS_tools_:_certutilисточник
mkdir -p $HOME/.pki/nssdb && chmod -R 0700 $HOME/.pki && certutil -d sql:$HOME/.pki/nssdb -N --empty-password
Для новых сборок, основанных на Debian, вам может потребоваться выполнить:
ПРИМЕЧАНИЕ: sudo dpkg-переконфигурирует ca-Certificates внутренне, вызывает update-ca-Certificates
Вам, конечно, все еще нужно будет скопировать сертификат (файл .crt) в / usr / share / ca-сертификаты, прежде чем делать что-либо из этого :)
источник
Опираясь на dwmw2 в ответ , вы можете сказать , приложения , которые используют NSS для его управления сертификатами использовать систему доверия магазин.
libnss3
по умолчанию поставляется с набором корневых сертификатов CA (только для чтенияlibnssckbi.so
), поэтому большую часть времени вам нужно вручную добавлять их в локальное хранилище доверенных сертификатов пользователя, расположенное в$HOME/.pki/nssdb
.p11-kit
предлагает замену,libnssckbi.so
которая действует как адаптер для общесистемных корневых сертификатов, установленных в/etc/ssl/certs
.Редактировать:
Кажется, что существует больше версий
libnssckbi.so
, чем простоlibnss3
. Ниже приведен скрипт для их поиска, резервного копирования и замены ссылкамиp11-kit
:Оригинальные инструкции:
Для этого установите
p11-kit
иlibnss3
(если они еще не установлены):Затем сделайте резервную копию существующего,
libnssckbi.so
предоставленногоlibnss3
:Наконец, создайте символическую ссылку:
Чтобы убедиться, что это сработало, вы можете запустить
ll /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so
и показать ссылку:Теперь, если вы добавите сертификат в хранилище CA, используя
update-ca-certificates
эти сертификаты, теперь они будут доступны для приложений, использующих NSS (libnss3
), таких как Chrome.источник
Как уже отмечалось, различные приложения, использующие NSS, имеют свое собственное хранилище сертификатов. Поскольку в Ubuntu все обстоит так, вы должны вручную использовать
certutil
свои CA для каждого приложения, для каждого пользователя.В других дистрибутивах , как Fedora, такого рода вещи просто работает ™ и вы должны сообщить об ошибке против каких - либо приложений , которые автоматически не доверяют УЦ установке с
update-ca-trust
.Вы также можете исправить это в Ubuntu, установив
p11-kit-modules
пакет и заменив встроенный модуль доверия NSS на корневыеp11-kit-trust.so
, сделав символическую ссылку, например, с/usr/lib/firefox/libnssckbi.so
на/usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so
После этого вы будете получать настроенные доверительные корни системы, а не некоторые жестко-закодированных из них. Обратите внимание, что Ubuntu поставляет несколько разных копий этой библиотеки libnssckbi.so с жестко заданными доверительными корнями, и вам необходимо заменить их все!
ср https://bugs.launchpad.net/ubuntu/+source/nss/+bug/1647285
источник
sudo find / -type f -name "libnssckbi.so"
, он нашелlibnssckbi.so
в трех местах:/usr/lib/thunderbird/
,/usr/lib/firefox/
и/usr/lib/x86_64-linux-gnu/nss/
. Итак, вы говорите, что я должен связатьlibnssckbi.so
во всех этих трех папкахp11-kit-trust.so
?/usr/lib/x86_64-linux-gnu/nss/libnssckbi.so
->/usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so
работает как ШАРМ. Я смог добавить сертификат/usr/local/share/ca-certificates
, запуститьsudo update-ca-certificates
и PRESTO, Chrome начал принимать самоподписанные сертификаты.Серьезно глупый ответ, чтобы добавить сюда, но я потратил 2 часа туда-сюда с certutils в Linux ... Я был уверен, что все было правильно:
Но все равно в хроме ничего не получалось. Я перепробовал все, в конце концов ....
Restarting Chrome
Был ключ к моему успеху после следующего: совет Стивена понедельника
источник