Как мне установить корневой сертификат?


224

Может кто-нибудь указать мне хороший учебник по установке корневого сертификата на Ubuntu 10 или 11?

Мне предоставили .crtфайл. Я понял, что нужно создать каталог /usr/share/ca-certificates/newdomain.orgи поместить его .crt в этот каталог. Кроме того, я не уверен, как поступить.


19
Если кто-то приземляется здесь с файлом cer вместо crt, это одно и то же (только с другим расширением). Вы должны быть в состоянии следовать этим ответам и просто заменить имя файла.
Оли

Ответы:


299

Установка сертификата root / CA

Получив файл сертификата CA foo.crt, выполните следующие действия, чтобы установить его в Ubuntu:

  1. Создайте каталог для дополнительных сертификатов CA в /usr/share/ca-certificates:

    sudo mkdir /usr/share/ca-certificates/extra
    
  2. Скопируйте .crtфайл CA в этот каталог:

    sudo cp foo.crt /usr/share/ca-certificates/extra/foo.crt
    
  3. Пусть Ubuntu добавить в .crtпуть файла относительно /usr/share/ca-certificatesк /etc/ca-certificates.conf:

    sudo dpkg-reconfigure ca-certificates
    

    Чтобы сделать это не в интерактивном режиме, выполните:

    sudo update-ca-certificates
    

В случае .pemфайла в Ubuntu, он должен быть сначала преобразован в .crtфайл:

openssl x509 -in foo.pem -inform PEM -out foo.crt

54
Как насчет использования /usr/local/share/ca-certificates(локально!) Вместо использования системного управления пакетами под управлением Directoy?
gertvdijk

6
Обратите внимание, что Firefox (и, возможно, некоторое другое программное обеспечение) не использует общесистемные сертификаты, но имеет свое собственное хранилище сертификатов: askubuntu.com/a/248326/79344 .
Амир Али Акбари

13
Обратите внимание, что файл должен быть в формате PEM и иметь расширение .crt.
Антон

2
sudo dpkg-reconfigure ca-certificatesСпасибо, другой sudo update-ca-certificates --freshне работал 16.10.
антивиртель

7
Команда openssl x509 -in foo.pem -inform PEM -out foo.crtкопирует файл PEM в файл PEM. Это можно сделать проще, переименовав.
Мариан

191

Имея файл сертификата CA 'foo.crt', выполните следующие шаги, чтобы установить его в Ubuntu:

Сначала скопируйте свой CA в каталог /usr/local/share/ca-certificates/

sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt

затем обновите CA store

sudo update-ca-certificates

Вот и все. Вы должны получить этот вывод:

Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....
Adding debian:foo.pem
done.
done.

Файл не требуется редактировать. Ссылка на ваш ЦС создается автоматически.

Обратите внимание, что имена файлов сертификатов должны заканчиваться, в .crtпротивном случае update-ca-certificatesсценарий их не зафиксирует.

Эта процедура работает и в более новых версиях: руководства .


1
Кажется, что это не сработает в верном времени 14.04
mcantsin

25
Обратите внимание, что, в отличие от добавления в / usr / share / ca-сертификаты, это работает только в том случае, если они находятся непосредственно в / usr / local / share / ca-сертификаты, а не в подкаталоге. +1 за использование локальной папки вместо системной папки!
Тоби Дж

2
Это задокументировано в README.Debian .
Певик

1
@ Sparky1, это должен быть принятый ответ.
Дрю Чапин

1
@FranklinYu спасибо :) Debian переместился из Alioth в Salsa, это также сработало бы: salsa.debian.org/debian/ca-certificates/raw/master/debian/… , но sources.debian.org лучше.
Певик

7

Установите центр сертификации в Ubuntu

Я проверил это на Ubuntu 14.04.

Вот мое решение, я долго искал и пытался понять, как заставить это работать.

  1. Извлеките .cer из браузера. Я использовал IE 11.
    • Настройки -> Свойства обозревателя -> Промежуточные центры сертификации
    • Выберите центр сертификации, который вы хотите экспортировать ( certutil -config - -pingпокажет вам те, которые вы используете, если вы находитесь за корпоративным прокси)
    • Экспорт -> Выберите формат, который вы хотите использовать: DER Encoded .cer
  2. Получить файлы .cer в Ubuntu как-то
  3. Конвертировать в .crt openssl x509 -inform DER -in certificate.cer -out certificate.crt
  4. Сделать дополнительный каталог sudo mkdir /usr/share/ca-certificates/extra
  5. Копировать сертификаты sudo cp certificate.crt /usr/share/ca-certificates/extra/certificate.crt
  6. sudo update-ca-certificates
  7. Если нет, то вы должны сделать то, что я сделал, перейти к sudo nano /etc/ca-certificates.conf
  8. Прокрутите вниз и найдите свой файл .cer и удалите !из перед именем файла (документ update-ca-сертификаты) - если вы не обнаружили, что ваш сертификат запущенdpkg-reconfigure ca-certificates
  9. Бегать sudo update-ca-certificates
  10. Возможно, вам придется по отдельности доверять ЦС от Firefox, Chrome и т. Д., Мне нужно было работать с Docker, чтобы после этих шагов он работал с Docker.

1
это работает в 16.04?
эндолит

@endolith работал для меня в 16.04.
Shubham

4

Другие ответы не помогли мне с Ubuntu 18.04. Добавьте сертификат сертификата к /etc/ssl/certs/ca-certificates.crtследующей команде:

cat YOUR_CERT_HERE.crt >> /etc/ssl/certs/ca-certificates.crt 

1
2 часа возиться с командами импорта, прежде чем я нашел это. Отлично!
beirtipol

Команда не так, окончательный sотсутствует: cat YOUR_CERT_HERE.crt >> /etc/ssl/certs/ca-certificates.crt . Спасибо за это решение.
SommerEngineering

Примечание. Это временное решение, так как добавленный сертификат будет удален после запуска update-ca-certificates.
Кенорб

3

Держите сертификат (root / CA) на веб-сервере, локальном для вашей сети, если хотите.

  • Перейдите к нему с помощью Firefox.
  • Откройте сертификат и скажите Firefox, чтобы добавить его в качестве исключения.
  • Firefox спросит вас, хотите ли вы доверять этому сертификату для идентификации веб-сайтов, для пользователей электронной почты или для издателей программного обеспечения.
  • Наслаждайтесь!

Обновление: необходимо проверить, работает ли это на Ubuntu 11. Я понял, что только что сделал это на Ubuntu 12.04 LTS.


5
не имеет Firefox свой собственный контейнер сертификатов? Если бы кто-то добавил сертификат таким способом, его мог бы использовать только Firefox, не так ли?
Aiyion.Prime

Это не работает вообще, вы все равно должны добавить его в глобальный контейнер сертификации ОС, иначе он будет только в контейнере Firefox.
arc_lupus

1

От сюда :

Установка сертификата

Вы можете установить файл ключа example.key и файл сертификата example.crt или файл сертификата, выданный центром сертификации, выполнив в командной строке терминала следующие команды:

sudo cp example.crt /etc/ssl/certs
sudo cp example.key /etc/ssl/private

Теперь просто настройте любые приложения с возможностью использования криптографии с открытым ключом, чтобы использовать файлы сертификатов и ключей. Например, Apache может предоставлять HTTPS, Dovecot может предоставлять IMAPS, POP3S и т. Д.


Надо было прочитать поближе ... Похоже, что это не для корневых сертификатов. На той странице, на которую я ссылался, есть информация о корневых сертификатах, которая может оказаться полезной.
jat255

1
У меня нет открытого ключа и закрытого ключа, у меня просто есть .crt, поэтому, к сожалению, эти инструкции не применяются.
Sparky1

0

Добавить сертификат Root CA в FireFox сейчас очень просто. Просто откройте настройки, перейдите в «Конфиденциальность и безопасность», прокрутите вниз до «Сертификаты» и нажмите «Просмотреть сертификаты ...». Здесь вы можете нажать «Импортировать сертификат». Укажите ваш корневой CA (.pem) и ОК. Это все, ребята.


0

Вот простые шаги:

  1. Установите сертификаты CA, чтобы приложения на основе SSL могли проверять подлинность соединений SSL:

    sudo apt-get install ca-certificates
    
  2. Скопируйте файл сертификата ( crtили.cer ) в /usr/local/share/ca-certificates/папку, например:

    sudo cp file.crt /usr/local/share/ca-certificates/
    

    Для файла PEM см .: Преобразование .pem в .crt и .key .

    Опционально, если вы используете прокси Charles, эта команда может работать:

    curl -L chls.pro/ssl | sudo tee /usr/local/share/ca-certificates/charles.crt
    
  3. Обновить сертификаты:

    sudo update-ca-certificates
    

    Команда обновит /etc/ssl/certsкаталог для хранения сертификатов SSL и создаст ca-certificates.crtфайл (составной список сертификатов с одним файлом).

    Примечание. Не добавляйте сертификаты вручную (как предлагается здесь ), поскольку они не являются постоянными и будут удалены.

Примечание: если вы работаете как root, вы можете отказаться sudoот вышеуказанных команд.


0

Разъяснение между update-ca-certificatesи dpkg-reconfigure ca-certificatesи почему один работает , а другой нет !!

update-ca-certificatesили sudo update-ca-certificates будет работать только если /etc/ca-certificates.conf был обновлен.

/etc/ca-certificate.conf обновляется только после запуска, dpkg-reconfigure ca-certificates который обновляет имена сертификатов для импорта в/etc/ca-certificates.conf

Это указано в заголовке /etc/ca-certificates.confфайла:

# This file lists certificates that you wish to use or to ignore to be
# installed in /etc/ssl/certs.
# update-ca-certificates(8) will update /etc/ssl/certs by reading this file.
#
# This is autogenerated by dpkg-reconfigure ca-certificates.  <=======
# Certificates should be installed under /usr/share/ca-certificates
# and files with extension '.crt' is recognized as available certs.
#
# line begins with # is comment.
# line begins with ! is certificate filename to be deselected.
#
mozilla/ACCVRAIZ1.crt
mozilla/AC_RAIZ_FNMT-RCM.crt
mozilla/Actalis_Authentication_Root_CA.crt
mozilla/AddTrust_External_Root.crt
...

Как вы можете видеть, формат , в /etc/ca-certificates.confэто<folder name>/<.crt name>

Таким образом, чтобы использовать update-ca-certificatesили sudo update-ca-certificatesвы можете сделать следующее для импорта .crt:

  1. Создайте каталог для дополнительных сертификатов CA в / usr / share / ca-сертификаты:

    sudo mkdir /usr/share/ca-certificates/extra

  2. Скопируйте файл .crt в этот каталог:

    sudo cp foo.crt /usr/share/ca-certificates/extra/foo.crt

  3. Добавить строку к /etc/ca-certificates.confиспользованию <folder name>/<.crt name>:

    echo "extra/foo.crt" >> /etc/ca-certificate.conf

  4. Обновлять сертификаты не в интерактивном режиме с помощью sudo update-ca-Certificates

    sudo update-ca-certificates

    ... Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done.

Веселиться!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.