- Что это такое.
- Основные преимущества.
- 1: установка mod_ssl
- 2: создание ssl-сертификата
- 3: установка ssl-сертификата
- О его недостатках.
- 4: активация сертификата ssl
- Получение бесплатного ssl-сертификата.
- Список установленных сертификатов.
- Автоматическое обновление ssl-сертификата.
- Add ca cert to local trust store on centos, debian or ubuntu
- Add trusted certificate centos 7
- Ssl-certificate – как добавить файл центра сертификации в centos 7 –
- Добавление сертификатов в базу данных nss
- Как добавить корневой сертификат в доверенные в linux в веб браузеры
- Как добавить корневой сертификат в доверенные в linux на уровне системы
- Размышления
- Решение
- Требования
- Установка ssl-сертификата на centos и ngnix — первый vps
Что это такое.
Let’s Encrypt — бесплатный, автоматизированный и открытый Центр Сертификации, созданный на благо всего общества организацией Internet Security Research Group (ISRG).
Основные преимущества.
- бесплатно: любой владелец сайта (в частности, доменного имени) может получить и установить доверенный TLS-сертификат Let’s Encrypt (TLS — наследник SSL);
- автоматизация: все функции установки, конфигурации и обновления проводятся в автоматическом режиме;
- безопасность: все методы шифрования Let’s Encrypt отвечают текущим стандартам;
- прозрачность: публичная доступность информации о выпуске и отзыве каждого сертификата для любого желающего;
- свободно: будет использован принцип Open Standard для протоколов взаимодействия с CA (Certificate Authority).
1: установка mod_ssl
Чтобы создать самоподписанный сертификат, для начала нужно установить mod_ssl, модуль Apache для поддержки шифрования SSL. Для этого используйте команду yum:
sudo yum install mod_ssl
После установки модуль включится автоматически, после чего Apache сможет использовать сертификаты SSL. Осталось только перезапустить Apache, чтобы mod_ssl был готов к использованию.
2: создание ssl-сертификата
Теперь веб-сервер подготовлен к шифрованию данных. Приступайте к созданию нового SSL-сертификата. Сертификат будет содержать некоторую базовую информацию о сайте; также к нему прилагается key-файл, благодаря которому сервер может обрабатывать зашифрованные данные.
Сначала нужно создать новый каталог, в котором будет храниться ключ сервера (key-файл) и сам сертификат:
3: установка ssl-сертификата
Итак, все необходимые компоненты готовы. Теперь нужно настроить виртуальный хост для отображения нового сертификата.
Откройте конфигурационный файл Apache для SSL в текстовом редакторе с привилегиями root:
О его недостатках.
В конце нужно отметить, что несмотря на все преимущества данного типа сертификата, существуют недостатки, которые нужно учитывать при выборе SSL:
1. Бесплатный сертификат Let’s Encrypt кратковременный и рассчитан на срок не более 90 дней, в отличии от платного, который можно выпустить сроком до 3 лет. Вы можете , конечно, перевыпускать сертификат каждые 3 месяца, но обязательно следите за сроками.
- Если вы выбрали способ обновления вручную, то следите четко за сроками и вовремя перевыпускайте сертификат. Иначе рискуете получить наплыв недовольных пользователей сайта и их последующий отток.
- Планировщик задач cron — этот способ настройки автоматического обновления. Способ хорош для тех, кто владеет навыками администрирования CentOS 7 и умеет работать с кронами. Нужно еще учитывать, что в работе крона не исключены ошибки, которые могут помешать перевыпуску сертификата. Вывод: следить за обновлением все равно придется.
- Автоматическое обновление — этот способ подразумевает, что вы принимаете автоматические настройки, предусмотренные Центром сертификации. И тут нужно понимать, что вы таким образом, даете свое согласие на то, что Центр сертификации может вносить изменения по своему усмотрению в программное обеспечение и настройки вашего сервера.
2. Не все домены можно защитить бесплатным Let’s Encrypt. Данный сертификат рассчитан только на защиту одного домена без проверки компании, так называемые DV SSL (Domain Validation).
Так, при помощи Let’s Encrypt нельзя создать следующие типы сертификатов:
- WildCard сертификат для защиты поддоменов определённого домена;
- Сертификаты OV SSL( Organization Validation), предполагающие проверку не только домена, но и компании;
- Сертификаты EV SSL (Extended Validation), сертификат с максимальной степенью защиты и зелёной адресной строкой браузера;
- Multi-Domain сертификат типа UCC.
Важный момент — нет никаких финансовых гарантий использования Let’s Encrypt. Если вдруг произойдет взлом бесплатного сертификата, то денежную компенсацию никто вам не предоставит.
4: активация сертификата ssl
На данный момент SSL-сертификат и веб-сервер готовы. Чтобы применить все изменения и запустить шифрование SSL, перезапустите сервер Apache, это обновит его конфигурации:
sudo apachectl restart
Чтобы увидеть новый сертификат в действии, посетите в браузере доменное имя или IP в таком формате:
Получение бесплатного ssl-сертификата.
Наша следующая задача — получить бесплатные сертификаты.
Список установленных сертификатов.
Для просмотра всего что генерировал вам Let’s Encrypt введите команду:
Автоматическое обновление ssl-сертификата.
Теперь сделаем так, чтобы сертификаты автоматически обновлялись перед истечением срока действия:
# systemctl stop nginx
Add ca cert to local trust store on centos, debian or ubuntu
On debian and ubuntu the directory is /usr/local/share/ca-certificates/ and the command to update is update-ca-certificates
At least on ubuntu:
Be sure that the filename ends with .crt and that its content starts with -----BEGIN CERTIFICATE----- and ends with -----END CERTIFICATE-----
Add trusted certificate centos 7
Ssl-certificate – как добавить файл центра сертификации в centos 7 –
Добавление сертификатов в базу данных nss
Некоторые приложения используют базу данных NSS, и у вас может быть необходимость добавить доверенные CA в неё.
Последующие изменения повлияют только на приложения, использующие базу данных NSS и учитывающие файл /etc/pki/nssdb.
1. Сначала создайте структуру каталогов для системных файлов базы данных NSS:
sudo mkdir -p /etc/pki/nssdb
Затем создайте новый набор файлов базы данных. Пароль нужен для того, чтобы базу данных могли редактировать только люди, которые его знают. Если все пользователи в системе (и с доступом к резервным копиям) заслуживают доверия, этот пароль можно оставить пустым.
sudo certutil -d sql:/etc/pki/nssdb -N
2. Убедитесь, что файлы базы данных доступны для чтения всем:
sudo chmod go r /etc/pki/nssdb/*
3. Теперь, когда доступны файлы базы данных NSS, добавьте сертификат в хранилище следующим образом:
sudo certutil -d sql:/etc/pki/nssdb -A -i ФАЙЛ-СЕРТИФИКАТА.crt -n "ИМЯ-СЕРТИФИКАТА" -t "C,,"
Например:
sudo certutil -d sql:/etc/pki/nssdb -A -i ./HackWareCA.crt -n "HackWare CA" -t "C,,"
Биты доверия, используемые в приведённом выше примере, помечают сертификат как надёжный для подписи сертификатов, используемых для связи SSL/TLS. Имя (указывается после опции -n), используемое в команде, можно выбрать любое, но убедитесь, что его легко отличить от других сертификатов в магазине.
Для проверки:
certutil -L -d /etc/pki/nssdb
Аналогичные инструкции можно использовать для включения сертификата только в базу данных NSS конкретного пользователя:
certutil -d sql:$HOME/.pki/nssdb -A -i ФАЙЛ-СЕРТИФИКАТА.crt -n "ИМЯ-СЕРТИФИКАТА" -t "C,,"
Удаление из файлов базы данных NSS
Чтобы удалить сертификат из любой базы данных NSS, используйте команду certutil следующим образом. В этом примере используется общесистемное расположение базы данных NSS, но его можно легко изменить на пользовательское ~/.pki/nssdb местоположение.
sudo certutil -d sql:/etc/pki/nssdb -D -n "certificateName"
Как добавить корневой сертификат в доверенные в linux в веб браузеры
Chrome, Chromium, Firefox и созданные на их основе веб браузеры доверяют корневым сертификатам, установленным на уровне системы. То есть вам достаточно добавить в доверенные CA сертификат как это показано в предыдущем разделе.
Причём эти браузеры хотя и используют NSS, они игнорируют общесистемные сертификаты NSS, которые можно добавить в файл /etc/pki/nssdb!
Тем не менее приложения, которые используют NSS (такие как Firefox, Thunderbird, Chromium, Chrome) хранят свои списки доверенных сертификатов в файлах cert9.db. Чтобы добавить свой сертификат в каждый из этих файлов можно использовать скрипт.
Сохранить следующий код в файл CAtoCert9.sh:
#!/bin/bash
certfile="root.cert.pem"
certname="My Root CA"
for certDB in $(find ~/ -name "cert9.db")
do
certdir=$(dirname ${certDB});
certutil -A -n "${certname}" -t "TCu,Cu,Tu" -i ${certfile} -d sql:${certdir}
doneВ этом файле измените значение certfile на имя файла вашего сертификата и значение certname на имя вашего сертификата, сохраните и закройте файл.
Затем запустите его следующим образом:
bash ./CAtoCert9.sh
В результате в домашней папке пользователя будут найдены все файлы cert9.db и в каждый из них будет добавлен указанный CA сертификат.
Вы можете добавить CA сертификаты в графическом интерфейсе каждого браузера.
- В настройках Chrome: Конфиденциальность и безопасность → Безопасность → Настроить сертификаты → Центры сертификации
- В настройках Chromium: Конфиденциальность и безопасность (выбрать «Ещё») → Настроить сертификаты → Центры сертификации
Нажмите кнопку «Импорт»:
Выберите файл с сертификатом.
Укажите, какие полномочия вы даёте этому сертификату:
- В настройках Firefox: Приватность и Защита → Сертификаты → Просмотр сертификатов → Центры сертификации:
Нажмите кнопку «Импортировать»:
Выберите файл с сертификатом.
Укажите, какие полномочия вы даёте этому сертификату:
Как добавить корневой сертификат в доверенные в linux на уровне системы
Сертификат с расширением .crt можно открыть двойным кликом и просмотреть его содержимое:
Если вы работаете в системе от обычного пользователя (не root), то кнопка «Импортировать» будет недоступна.
Чтобы разблокировать кнопку «Импортировать», выполните следующую команду:
sudo gcr-viewer /ПУТЬ/ДО/СЕРТИФИКАТА.crt
Например:
sudo gcr-viewer ./HackWareCA.crt
Данный способ может не сработать, поэтому рассмотрим, как добавить доверенные корневые центры сертификации в командной строке.
Суть метода очень проста:
- Добавить свой корневой CA сертификат в папку, предназначенную для таких сертификатов.
- Запустить программу для обновления общесистемного списка сертификатов.
Пути и команды в разных дистрибутивах Linux чуть различаются.
Просмотреть Subject всех корневых CA сертификатов можно уже знакомой командой:
awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crtДля демонстрации я добавлю сертификат с Common Name, включающим «HackWare», тогда для проверки, имеется ли сертификат с таким именем среди корневых CA, я могу использовать команду:
awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt | grep -i HackWare
Для добавления своего корневого CA в доверенные в Debian, Kali Linux, Linux Mint, Ubuntu и их производных:
1. Проверьте, существует ли директория /usr/local/share/ca-certificates:
ls -l /usr/local/share/ca-certificates
Если её ещё нет, то создайте:
sudo mkdir /usr/local/share/ca-certificates
Сертификат должен быть в формате PEM (обычно так и есть) и иметь расширение .crt — если расширение вашего сертификата .pem, то достаточно просто поменять на .crt.
2. Скопируйте ваш сертификат командой вида:
sudo cp СЕРТИФИКАТ.crt /usr/local/share/ca-certificates/
Например:
sudo cp ./HackWareCA.crt /usr/local/share/ca-certificates/
3. Запустите следующую команду для обновления общесистемного списка:
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:HackWareCA.pem done. done.
Проверим наличие нашего CA сертификата среди доверенных:
awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt | grep -i HackWareСертификат успешно найден:
Чтобы его удалить:
sudo rm /usr/local/share/ca-certificates/СЕРТИФИКАТ.crt sudo update-ca-certificates
Для добавления своего корневого CA в доверенные в Arch Linux, BlackArch и их производных:
1. Выполните команду вида:
sudo cp ./СЕРТИФИКАТ.crt /etc/ca-certificates/trust-source/anchors/
Например:
sudo cp ./HackWareCA.crt /etc/ca-certificates/trust-source/anchors/
2. Обновите общесистемный список доверенных CA:
sudo update-ca-trust
Чтобы удалить этот сертификат:
sudo rm /etc/ca-certificates/trust-source/anchors/СЕРТИФИКАТ.crt sudo update-ca-trust
Размышления
Размышления крайне просты: для экономии бюджета PKI-AD будет установлена непосредственно на сервер Active Directory, а вот ROOT-CA требуется поднять на Linux.
Далее по тексту:
Решение
Подготовка ROOT-CA. (CentOS7)
Корневой сертификат ROOT-CA, будем выпускать на CentOS, там-же будем подписывать сертификат для PKI AD-CA.
Для решения данной задачи на машине с Linux необходимо установить пакет easy-rsa, который содержится в репетиторе epel-release
yum install epel-releas
yum install easy-rsa
Более подробно с документацией к easy-rsa можно ознакомится на GitHub/OpenVPN
После того как мы установили easy-rsa мы можем создать главный удостоверяющий центр сертификации.
(Все операции буду выполнять из под пользователя root)
Создадим в директории пользователя, каталог – в котором будем хранить наш PKI
mkdir -p ~/ROOTca
Далее нужно скопировать последнюю версию easy-rsa в наш каталог ROOTca,
dir /usr/share/easy-rsa/
В моём случаи последняя версия 3.0.8. Её и будем копировать.
Копируем easy-rsa в каталог ROOTca
cp -R /usr/share/easy-rsa/3.0.8/* ~/ROOTca
теперь нам необходимо создать файл ответов vars, и отредактировать его
создаем и сразу редактируем
cat > ~/ROOTca/vars
пример файла vars с описанием
собираем файл vars, у меня получилось так:
Требования
Для выполнения данного руководства нужен предварительно настроенный сервер CentOS 7 и не-рутовая учетная запись пользователя с расширенными привилегиями sudo. Подробнее об этом можно прочесть в руководстве «Начальная настройка сервера CentOS 7».
Кроме того, нужно предварительно установить Apache; для установки веб-сервера можно использовать стандартный менеджер пакетов yum:
Установка ssl-сертификата на centos и ngnix — первый vps
SSL сертификаты можно приобрести у нас.
После приобретения сертификата у вас должны быть следующие файлы:
- файл ключа, который был создан Вами при генерации CSR-запроса для получения сертификата (к примеру private.key),
- файл сертификата, например sert1.crt,
- файл промежуточного сертификата (промежуточных сертификатов может быть несколько), например sert2.crt, sert3.crt,
- файл корневого сертификата sert4.crt.
Вышеперечисленные сертификаты могут быть в виде текста (в таком случае можно данный текст можно сохранить через текстовый редактор с расширением .crt):
-----BEGIN CERTIFICATE-----
много строк с текстом
много строк с текстом
много строк с текстом
-----END CERTIFICATE-----Все эти файлы (private.key, sert1.crt, sert2.crt, sert3.crt, sert4.crt) необходимо скопировать под root по ssh на вашу ВМ Битрикс в папку /etc/nginx/ssl/domen – папку надо предварительно создать.
После чего нам необходимо объединить все сертификаты в один файл pem. Здесь важно соблюсти обратную последовательность: сначала должен быть сертификат для вашего домена sert1.crt, затем промежуточные сертификаты sert3.crt, sert2.crt и затем корневой сертификат sert4.crt. Сделать это можно через любой текстовый редактор или через командную строку сервера:
cd /etc/nginx/ssl/domen/
cat sert1.crt sert3.crt sert2.crt sert4.crt > sert.pemПолученный файл сертификата sert.pem скопировать в папку /etc/nginx/ssl/domen/ и прописать в конфигурационном файле nginx путь к публичному ключу – /etc/nginx/bx/conf/ssl.conf:
ssl_certificate /etc/nginx/ssl/domen/cert.pem;
ssl_certificate_key /etc/nginx/ssl/domen/private.key;Перезагружаем nginx:
[root@1 conf]# service nginx restart
Stopping nginx:
[ OK ]
Starting nginx:
[ OK ]и проверяем результат, набрав ваш домен по протоколу https – https://www.sslshopper.com/ssl-checker.html

I thought update-ca-trust was only used to manage CA certificates, not non-CA certificates like server certificates. When I try something similar (for server certificates), the
update-ca-trust extractprocess ignores them.