The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Раздел полезных советов: Получение сертификата через общедос..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Получение сертификата через общедос..."  +/
Сообщение от auto_tips (ok), 15-Дек-15, 11:21 
Удостоверяющий центр [[https://letsencrypt.org/ LetsEncrypt]] контролируется сообществом и позволяет любому желающему бесплатно получить TLS-сертификат для организации доступа через защищённое соединение к своему сайту. Для прохождения верификации перед получением сертификата достаточно продемонстрировать контроль над доменом через размещения файла с ключом на web-сервере или запуска специального автоматизированного крипта.

Инструментарий для верификации домена и управления сертификатами можно загрузить с сайта проекта:

   git clone https://github.com/letsencrypt/letsencrypt
   cd letsencrypt
   ./letsencrypt-auto --help

или установить готовые пакеты для Fedora 23:

   dnf install letsencrypt


Основные методы верификации:

1. Ручной метод: генерация кода подтверждения и его копирование на  web-сервер.
Генерируем проверочный код:

    letsencrypt --text --email recovery@example.com --domains www.example.com,example.com,foo.example.com --agree-tos --renew-by-default --manual certonly

Записываем полученный код на web-сервер в файл .well-known/acme-challenge/anotherrandomthinghere, относительно корня сайта:

   cd /var/www/html
   mkdir -p .well-known/acme-challenge
   echo "224234fSDFSF23SFADASD" > .well-known/acme-challenge/anotherrandomthinghere

2. Самодостаточная проверка: на время проверки letsencrypt берёт на себя функции  http-сервера, связанного с верифицируемым доменом (хост, на который указывает "A" запись в DNS), и напрямую отвечает на запросы сервиса. На сервере, где будет обслуживаться домен запускаем (http-сервер сайта должен быть отключен, метод подходит для начальной конфигурации ещё не введённых в строй сайтов):

   letsencrypt --text --renew-by-default --email recovery@example.com --domains www.example.com,example.com,foo.example.com --agree-tos --standalone --standalone-supported-challenges http-01 certonly


3. Проверка через автоматизированное создание файлов к корне web-сервера. На сервере, где работает сайт проверяемого домена, запускаем (/var/www/html - путь к корню сайта, относительно которого будут временно размещены коды для верификации):

  letsencrypt --text --renew-by-default --email recovery@example.com --domains www.example.com,example.com,foo.example.com --agree-tos --webroot --webroot-path /var/www/html certonly

При выполнении автоматизированной проверки от пользователя root готовые сертификаты будут скопированы в директорию /etc/letsencrypt. Для их подключения к mod_ssl можно выполнить:


   ln -s /etc/letsencrypt/live/www.example.com/cert.pem /etc/pki/tls/certs/www.example.com.crt
   ln -s /etc/letsencrypt/live/www.example.com/chain.pem /etc/pki/tls/certs/www.example.com.chain.crt
   ln -s /etc/letsencrypt/live/www.example.com/privkey.pem /etc/pki/tls/private/www.example.com.key
   cp /etc/httpd/conf.d/ssl.conf{,.backup}
   sed -i 's@\(SSLCertificateFile\) .*@\1 /etc/pki/tls/certs/www.example.com.crt@' /etc/httpd/conf.d/ssl.conf
   sed -i 's@\(SSLCertificateKeyFile\) .*@\1 /etc/pki/tls/private/www.example.com.key@' /etc/httpd/conf.d/ssl.conf
   sed -i 's@#\(SSLCertificateChainFile\) .*@\1 /etc/pki/tls/certs/www.example.com.chain.crt@' /etc/httpd/conf.d/ssl.conf


После чего нужно сделать директории с сертификатами доступными в SELinux-контексте cert_t:

   semanage fcontext -a -t cert_t '/etc/letsencrypt/(archive|live)(/.*)?'
   restorecon -Rv /etc/letsencrypt

По умолчанию время жизни сертификата LetsEncrypt составляет 90 дней, что требует настройки автоматизации обновления сертификата. Например, раз в 60 дней через cron можно вызывать скрипт, который будет продлевать сертификат на очередные 90 дней:

   /usr/bin/letsencrypt -d www.example.com --renew-by-default -m recovery@example.com --agree-tos -t --webroot -w /var/www/html certonly

Пример unit-файла /etc/systemd/system/www-example-com-renewal.service для обновления сертификатов:


   [Unit]
   Description=Automatically renew the www.example.com certificate

   [Service]
   Type=oneshot
   ExecStart=/usr/bin/letsencrypt -d www.example.com --renew-by-default -m recovery@example.com --agree-tos -t --webroot -w /var/www/html certonly
   ExecStart=/usr/sbin/systemctl reload httpd


Файл автозапуска /etc/systemd/system/www-example-com-renewal.timer:

   [Unit]
   Description=Trigger an automatic renewal every month

   [Timer]
   OnCalendar=monthly
   Persistent=true

   [Install]
   WantedBy=multi-user.target

В случае необходимости отзыва сертификата, например, после утечки закрытых ключей, можно выполнить команду:

   letsencrypt revoke --cert-path /etc/letsencrypt/archive/www.example.com/cert1.pem


URL: https://fedoramagazine.org/letsencrypt-now-available-fedora/ https://letsencrypt.readthedocs.org/en/latest/intro.html
Обсуждается: https://www.opennet.ru/tips/info/2929.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Получение сертификата через общедоступный удостоверяющий цен..."  +/
Сообщение от Georges (ok), 15-Дек-15, 11:21 
Внедряем
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Получение сертификата через общедоступный удостоверяющий цен..."  +/
Сообщение от Аноним (-), 15-Дек-15, 14:45 
> ExecStart=/usr/bin/letsencrypt -d www.example.com --renew-by-default -m recovery@example.com --agree-tos -t --webroot -w /var/www/html certonly

Есть же letsencrypt-renewer, который обновляет все сертификаты согласно конфигам /etc/letsencrypt/renewal/*.conf

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Получение сертификата через общедоступный удостоверяющий цен..."  +/
Сообщение от CHERTSemail (??), 16-Дек-15, 08:12 
Для автоматизации гораздо удобнее создать общий файл настроек webroot.ini вида:

authenticator = webroot
server = https://acme-v01.api.letsencrypt.org/directory
text = True
agree-tos = True
renew-by-default = True
email = admin@domain.ru

и вызывать
./letsencrypt-auto --config webroot.ini --webroot-path /var/www/example.com -d example.com certonly

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Получение сертификата через общедоступный удостоверяющий цен..."  +/
Сообщение от Аноним (5), 24-Дек-15, 09:59 
Есть проблема: при исрользовании --web-root невозможно валидировать домен по https. Т.е. если сайт доступен только по https его приходится останавливать и использовать --standalone --standalone-supported-challenges tls-sni-01.

Неудобненько.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Получение сертификата через общедоступный удостоверяющий цен..."  +/
Сообщение от himiq (?), 24-Янв-16, 12:45 
А есть ли способ обойти невозможность работы с их сертификатами в старых браузерах ? в Windows XP Chrome, например
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Получение сертификата через общедоступный удостоверяющий цен..."  +/
Сообщение от geo1 (?), 01-Фев-18, 08:15 
geo1
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Получение сертификата через общедоступный удостоверяющий цен..."  +/
Сообщение от Анжела (?), 24-Авг-18, 10:34 
!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "Получение сертификата через общедоступный удостоверяющий цен..."  +/
Сообщение от Анжела (?), 24-Авг-18, 10:36 
Работа
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Получение сертификата через общедоступный удостоверяющий цен..."  +/
Сообщение от Анжела (?), 24-Авг-18, 11:21 
geo1
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "Получение сертификата через общедоступный удостоверяющий цен..."  +/
Сообщение от Анжела (?), 24-Авг-18, 11:23 
geo1
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру