- SSL Certificate Location on UNIX/Linux
- 6 Answers 6
- Добавляем корневой доверенный сертификат в Linux
- Установка корневого сертификата в Linux
- Добавить корневой доверенный сертификат для браузеров Mozilla, Chrome
- Где хранятся SSL-сертификаты Linux?
- Где хранятся сертификаты SSL?
- Где хранятся сертификаты в Redhat Linux?
- Содержит ли сертификат SSL закрытый ключ?
- Где в Windows хранятся сертификаты SSL?
- Как просмотреть сертификаты в Linux?
- Как установить SSL-сертификат в Linux?
- Как загрузить сертификат SSL в Linux?
- Как я могу восстановить свой закрытый ключ SSL?
- Как мне найти свой закрытый ключ SSL?
- Где находится закрытый ключ SSL?
SSL Certificate Location on UNIX/Linux
Is there any standard or convention for where SSL certificates and associated private keys should go on the UNIX/Linux filesystem?
6 Answers 6
For system-wide use, OpenSSL should provide you /etc/ssl/certs and /etc/ssl/private . The latter of which will be restricted 700 to root:root .
If you have an application that doesn’t perform initial privilege separation from root , then it might suit you to locate them somewhere local to the application with the relevantly restricted ownership and permissions.
@cweiske This seems to be historical OpenSSL convention, not formally standardized, and a very unwieldy one in my opinion. My earliest trace is this version: rpm.pbone.net/index.php3/stat/4/idpl/38501/dir/redhat_other/com/…
"/etc/ssl/certs/ca-certificates.crt", // Debian/Ubuntu/Gentoo etc. "/etc/pki/tls/certs/ca-bundle.crt", // Fedora/RHEL 6 "/etc/ssl/ca-bundle.pem", // OpenSUSE "/etc/pki/tls/cacert.pem", // OpenELEC "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem", // CentOS/RHEL 7 "/etc/ssl/cert.pem", // Alpine Linux
"/etc/ssl/certs", // SLES10/SLES11, https://golang.org/issue/12139 "/system/etc/security/cacerts", // Android "/usr/local/share/certs", // FreeBSD "/etc/pki/tls/certs", // Fedora/RHEL "/etc/openssl/certs", // NetBSD "/var/ssl/certs", // AIX
This will vary from distribution to distribution. For example, on Amazon Linux instances (based on RHEL 5.x and parts of RHEL6, and compatible with CentOS), the certificates are stored in /etc/pki/tls/certs and the keys are stored in /etc/pki/tls/private . The CA certificates have their own directory, /etc/pki/CA/certs and /etc/pki/CA/private . For any given distribution, especially on hosted servers, I recommend to follow the already-available directory (and permissions) structure, if one is available.
Ubuntu uses /etc/ssl/certs . It also has the command update-ca-certificates which will install certificates from /usr/local/share/ca-certificates .
So installing your custom certificates in /usr/local/share/ca-certificates and running update-ca-certificates seems to be recommended.
Great answers so far, thanks, all! But since 2009, free SSL cert systems like LetsEncrypt have become the standard, and the modern config is a tad more complicated.
LetsEncrypt has three directories, for archiving, active, and renewal for SSL-enabled domains, check them here:
/etc/letsencrypt/archive/example.com /etc/letsencrypt/live/example.com /etc/letsencrypt/renewal/example.com.conf
Apache2 has two directories, for enabled and available SSL-enabled domains, check them here:
/etc/apache2/sites-enabled/example.com-le-ssl.conf /etc/apache2/sites-available/example.com-le-ssl.conf
LetsEncrypt Archives eventually get moved to another directory, check it here:
/var/lib/letsencrypt/backups/[TIMESTAMP]/example.com-le-ssl.conf_0
Добавляем корневой доверенный сертификат в Linux
28.09.2022
itpro
CentOS, Linux, Ubuntu
комментария 4
В этой статье мы покажем, как добавить (установить) новый сертификат в список доверенных корневых сертификатов в Linux.
Например, вы используете на своем сайте самоподписанный SSL/TLS сертификат и не хотите, чтобы на клиентах при открытии сайта появлялась ошибка SEC_ERROR_UNKNOWN_ISSUER.
В данном примере мы установим в Linux корневой сертификат Минцифры (Russian Trusted Sub CA), на базе которого сейчас выпускаются сертификаты для сайтов многих компаний и гос-органов РФ.
Или это может быть самоподписанный сертификат с сайта IIS на Windows.
Чтобы проверить, что ваш хост Linux не может проверить (и соответственно не доверяет) SSL сертификату на определенном сайте, выполните команду:
$ curl –I https://www.sberbank.ru
curl: (60) SSL certificate problem: unable to get local issuer certificate. More details here: https://curl.haxx.se/docs/sslcerts.html curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above.
В данном случае нам нужно добавить корневой центр сертификации этого сайта в список доверенных корневых сертификатов Linux.
Установка корневого сертификата в Linux
Для обновления хранилища доверенных сертификатов в Linux вам нужен файл сертификата в формате PEM с расширением файла .crt. PEM сертификат представляет собой текстовый файл в формате base64, который содержит в начале файла строку —-BEGIN CERTIFICATE—- и в конце ——END CERTIFICATE——.
Если ваш файл сертификата в формате DER, вы можете конвертировать его в PEM формат с помощью утилиты openssl:
$ openssl x509 -in my_trusted_sub_ca.der -inform der -out my_trusted_sub_ca.cer
Сначала рассмотрим, как добавит корневой сертификат вашего CA в доверенные в дистрибутивах Linux на базе DEB (Ubuntu, Debian, Mint, Kali Linux).
Скопируйте файлы ваших сертификаты в хранилище сертификатов в каталог usr/local/share/ca-certificates/:
$ sudo cp my_trusted_sub_ca.crt /usr/local/share/ca-certificates/
$ sudo cp my_trusted_root_ca.crt /usr/local/share/ca-certificates/
Обновите хранилище сертификатов командой:
$ sudo update-ca-certificates -v
$ sudo apt-get install -y ca-certificates
Если сертификаты успешно добавлены, появится сообщение о том, что сертфикат скопирован в /etc/ssl/certs/:
Updating certificates in /etc/ssl/certs… 2 added, 9 removed; done. Running hooks in /etc/ca-certificates/update.d
$ sudo dpkg-reconfigure ca-certificates
Выберите из списка сертификаты, которые нужно добавить в доверенные.
В Linux список доверенных сертификатов содержится в файле /etc/ssl/certs/ca-certificates.crt. Обе рассмотренные выше команды обновят этот файл и добавят в информацию о новых сертификатах.
Вы можете проверить, что ваши сертификаты были добавлены в доверенные с помощью команды:
Укажите часть Common Name вашего сертификата вместо YourCASubj для поиска в хранилище по subject.
Вы можете убедиться, что ваша ОС доверяет сертификату с помощью команду:
$ openssl verify my_trusted_sub_ca.crt
error 20 at 0 depth lookup: unable to get local issuer certificate error my_trusted_sub_ca.crt: verification failed
Теперь проверьте, что на сайте используется доверенный SSL сертификат с помощью curl:
$ curl –I https://www.sberbank.ru
Все ок, сертификат доверенные < HTTPOnly: secure >.
$ sudo mkdir /usr/share/ca-certificates/extra
Чтобы удалить сертификат, удалите ваш crt файл:
$ sudo rm /usr/local/share/ca-certificates/yourcert.crt
$ sudo update-ca-certificates —fresh
В дистрибутивах Linux на базе RPM (CentOS, Oracle, RHEL, Rocky Linux, Fedora) для добавления сертификата в доверенные:
- Установите пакет ca-certificates: # yum install ca-certificates
- Скопируйте файл сертификата в каталог /etc/pki/ca-trust/source/anchors/: # cp mycert.crt /etc/pki/ca-trust/source/anchors/
- Обновите хранилище:
# update-ca-trust force-enable
# update-ca-trust extract
Добавить корневой доверенный сертификат для браузеров Mozilla, Chrome
Теперь все системные утилиты будут доверять сайтам, использующим данный CA. Но это не повлияет на веб браузеры Mozilla Firefox или Google Chrome. Они по-прежнему будут показывать предупреждение о недоверенном сертификате.
Дело в том, что браузеры Firefox, Chromium, Google Chrome, Vivaldi и даже почтовый клиент Mozilla Thunderbird не используют системное хранилище сертификатов Linux. Хранилище сертификатов для этих программ находится в директории пользователя в файле cert8.db (для Mozilla) или cert9.db (для Chromium и Chrome). Для обновления этих хранилищ сертификатов используется утилита certutil из пакета libnss3-tools.
$ sudo apt install libnss3-tools
Теперь выполните следующие скрипты для добавления ваших сертификатов в хранилище через NSS:
#!/bin/bash
certfile=»my_rusted_root_ca.crt»
certname=»My Root CA1″
for certDB in $(find ~/ -name «cert8.db»)
do
certdir=$(dirname $);
certutil -A -n «$» -t «TCu,Cu,Tu» -i $ -d dbm:$
done
for certDB in $(find ~/ -name «cert9.db»)
do
certdir=$(dirname $);
certutil -A -n «$» -t «TCu,Cu,Tu» -i $ -d sql:$
done
После запуска скрипта, сайтам с данным CA будут доверять все браузеры.
Предыдущая статья Следующая статья
Где хранятся SSL-сертификаты Linux?
По умолчанию сертификаты устанавливаются в / etc / ssl / certs. Это позволяет нескольким службам использовать один и тот же сертификат без чрезмерно сложных прав доступа к файлам. Для приложений, которые можно настроить на использование сертификата CA, вам также следует скопировать файл / etc / ssl / certs / cacert.
Где хранятся сертификаты SSL?
Они могут быть закодированы в Base64 или DER, они могут находиться в различных хранилищах ключей, таких как хранилища JKS или хранилище сертификатов Windows, или они могут быть зашифрованными файлами где-нибудь в вашей файловой системе. Есть только одно место, где все сертификаты выглядят одинаково независимо от того, в каком формате они хранятся, — это сеть.
Где хранятся сертификаты в Redhat Linux?
crt / как место, где будут храниться сертификаты. / etc / httpd / conf / ssl. key / как место, где хранится закрытый ключ сервера. / etc / httpd / conf / ca-bundle / как место, где будет храниться файл пакета CA.
Содержит ли сертификат SSL закрытый ключ?
Примечание: Ни на одном этапе процесса SSL хранилище SSL или центр сертификации не имеют вашего закрытого ключа. Его следует безопасно сохранить на сервере, на котором вы его создали. Не отправляйте никому свой закрытый ключ, так как это может поставить под угрозу безопасность вашего сертификата.
Где в Windows хранятся сертификаты SSL?
В файле: \% APPDATA% MicrosoftSystemCertificatesMyCertificates вы найдете все ваши личные сертификаты.
Как просмотреть сертификаты в Linux?
Это можно сделать с помощью следующей команды: sudo update-ca-Certificates. Вы заметите, что команда сообщает об установленных сертификатах, если это необходимо (в современных установках может уже быть корневой сертификат).
Как установить SSL-сертификат в Linux?
Шаги по установке сертификата SSL на веб-сервере Linux Apache.… Найдите на своем сервере следующие каталоги и файлы:
- etc / httpd / conf / httpd. конф.
- и т.д. / apache2 / apache2. конф.
- httpd-ssl. конф.
- ссл. конф.
Как загрузить сертификат SSL в Linux?
Как установить сертификат SSL на серверы Linux, на которых нет Plesk.
- Первым и самым важным шагом является загрузка сертификата и важных файлов ключей. …
- Войти на сервер. …
- Укажите пароль root.
- На следующем шаге можно увидеть /etc/httpd/conf/ssl.crt. …
- Затем переместите ключевой файл также в /etc/httpd/conf/ssl.crt.
Как я могу восстановить свой закрытый ключ SSL?
Используйте следующие шаги, чтобы восстановить свой закрытый ключ с помощью команды certutil. 1. Найдите файл сертификата сервера, открыв Microsoft Internet Information Services Manager, затем с правой стороны выберите Инструменты & gt; Диспетчер информационных служб Интернета (IIS). 2.
Как мне найти свой закрытый ключ SSL?
- Откройте командную строку.
- Создайте новый закрытый ключ. openssl genrsa -des3 -out имя_ключа.key длина_ключа -sha256 Например, openssl genrsa -des3 -out private_key.key 2048 -sha256. …
- Создайте запрос на подпись сертификата (CSR).
Где находится закрытый ключ SSL?
Как мне это получить? Закрытый ключ генерируется вашим запросом на подпись сертификата (CSR). CSR отправляется в центр сертификации сразу после активации сертификата. Закрытый ключ должен храниться в безопасности и в секрете на вашем сервере или устройстве, потому что позже он понадобится вам для установки сертификата.