Установка SSL-сертификата на CentOS и Ngnix — Первый VPS

Установка 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.
Про сертификаты:  Установка SSL сертификата на IIS – сервере

Важный момент — нет никаких финансовых гарантий использования 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

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 extract process ignores them.

Ssl-certificate – как добавить файл центра сертификации в centos 7 –

Лучший ответ

Ваш CA-файл должен быть в двоичном формате X.509 вместо кодировки Base64; он должен быть обычным DER или PEM, чтобы его можно было успешно добавить в список доверенных центров сертификации на вашем сервере.

Чтобы продолжить, поместите файл CA в каталог /usr/share/pki/ca-trust-source/anchors/, затем запустите указанную ниже командную строку (вам могут потребоваться привилегии sudo в зависимости от ваших настроек);

# CentOS 7, Red Hat 7, Oracle Linux 7
update-ca-trust

Обратите внимание, что все настройки доверия, доступные в каталоге /usr/share/pki/ca-trust-source/anchors/, интерпретируются с более низким приоритетом по сравнению с настройками, помещенными в каталог /etc/pki/ca-trust/source/anchors/, который может быть в расширенном формате файла BEGIN TRUSTED.

Для систем Ubuntu и Debian предпочтительным каталогом для этой цели является /usr/local/share/ca-certificates/.

Таким образом, вам необходимо поместить файл CA в каталог /usr/local/share/ca-certificates/, а затем обновить список доверенных центров сертификации, запустив при необходимости с привилегиями sudo приведенную ниже командную строку;

update-ca-certificates

Добавление сертификатов в базу данных 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), используемое в команде, можно выбрать любое, но убедитесь, что его легко отличить от других сертификатов в магазине.

Про сертификаты:  Тест с ответами по теме "Допинг и антидопинговый контроль" | 24forcare | Медицина

Для проверки:

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

Данный способ может не сработать, поэтому рассмотрим, как добавить доверенные корневые центры сертификации в командной строке.

Суть метода очень проста:

  1. Добавить свой корневой CA сертификат в папку, предназначенную для таких сертификатов.
  2. Запустить программу для обновления общесистемного списка сертификатов.


Пути и команды в разных дистрибутивах 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.

Про сертификаты:  Купить Бочка дубовая СТАВБОНДАРЬ, 20 л в Москве, заказать по цене 9890 рублей с доставкой в интернет-магазине Русская Дымка

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

Оцените статью
Мой сертификат
Добавить комментарий