- Почему лучше рассчитывать на sni?
- Что такое let’s encrypt – let’s encrypt
- Are certificates from let’s encrypt trusted by my browser?
- Can i get a certificate for multiple domain names (san certificates or ucc certificates)?
- Caveat emptor
- Does let’s encrypt generate or store the private keys for my certificates on let’s encrypt’s servers?
- Does let’s encrypt issue certificates for anything other than ssl/tls for websites?
- Does let’s encrypt issue wildcard certificates?
- I successfully renewed a certificate but validation didn’t happen this time – how is that possible?
- Manual
- Standalone
- Webroot
- What ip addresses does let’s encrypt use to validate my web server?
- What is the lifetime for let’s encrypt certificates? for how long are they valid?
- What kind of support do you offer?
- Yet another инструкция по получению ssl-сертификата let’s encrypt
- Вот и всё
- Если нужно добавить поддомен или домен в сертификат
- Если нужно получить сертификат для домена без сайта…
- Использование let’s encrypt для внутренних серверов
- Настройка ssl в nginx
- Настройка ssl сертификатов для других веб-серверов
- Подготовим nginx к получению сертификатов
- Получаем сертификаты
- Проверим полученный сертификат
- Проверка домена
- Продление ssl сертификата
- Продление сертификатов
- Регистрация в let’s encrypt
- Установка ssl сертификата для apache
- Установка в jessie
- Шаг 2: создание сертификата
- Выпуск и отзыв сертификатов
- Will let’s encrypt issue organization validation (ov) or extended validation (ev) certificates?
Почему лучше рассчитывать на sni?
Это просто. Вам не нужно постоянно держать в голове факты о выданных сертификатах. Для какого домена сертификат был выдан первым. К какому сертификату нужно добавлять еще домены. И так далее… Ни о чем таком со SNI не нужно думать.
- Секреты остаются секретами. Если у вас для всех доменов один сертификат, то любой сможет очень легко увидеть весь список, независимо от вашего желания. Если же для каждого сайта свой сертификат, то такой проблемы нет.
Например, так можно посмотреть домены в сертификате Тематических Медиа:
Что такое let’s encrypt – let’s encrypt
Let’s Encrypt – бесплатный, автоматизированный и открытый Центр Сертификации, созданный на благо всего общества организацией Internet Security Research Group (ISRG).
Мы помогаем людям выпускать SSL/TLS сертификаты для их сайтов с доступом по HTTPS, бесплатно, максимально облегчая процесс выдачи. Потому что хотим сделать интернет безопасным, и уважающим конфиденциальность его пользователей.
О наших успехах за последний год вы можете узнать, скачав наш годовой отчёт.
Ключевые принципы Let’s Encrypt:
- Бесплатность: Любой владелец домена может использовать Let’s Encrypt для получения SSL/TLS сертификатов, не тратя ни копейки.
- Автоматизированность: Программное обеспечение Let’s Encrypt, запущенное на web-сервере, само позаботится о выпуске, настройке и обновлении сертификатов.
- Безопасность: Let’s Encrypt будет платформой для передовых технологии в области TLS безопасности, как для Центра Сертификации, так и для web-серверов.
- Прозрачность: Все выданные или отозванные сертификаты будут сохранены, в том числе и для любых проверок безопасности.
- Открытость: Протокол выпуска и обновления сертификатов будет опубликован как открытый стандарт, готовый ко внедрению.
- Взаимодействие: Как и сами протоколы по обмену данными, лежащие в его основе, Let’s Encrypt – это результат объединённых усилий сообщества, без диктата какой-либо одной организации.
Более подробно о Центре Сертификации Let’s Encrypt вы можете узнать на странице как работает Let’s Encrypt.
Are certificates from let’s encrypt trusted by my browser?
For most browsers and operating systems, yes. See the compatibility list for more detail.
Can i get a certificate for multiple domain names (san certificates or ucc certificates)?
Yes, the same certificate can contain several different names using the Subject Alternative Name (SAN) mechanism.
Caveat emptor
Всё знаете про SNI? Читайте сразу про установку.
Does let’s encrypt generate or store the private keys for my certificates on let’s encrypt’s servers?
No. Never.
The private key is always generated and managed on your own servers, not by the Let’s Encrypt certificate authority.
Does let’s encrypt issue certificates for anything other than ssl/tls for websites?
Let’s Encrypt certificates are standard Domain Validation certificates, so you can use them for any server that uses a domain name, like web servers, mail servers, FTP servers, and many more.
Email encryption and code signing require a different type of certificate that Let’s Encrypt does not issue.
Does let’s encrypt issue wildcard certificates?
Yes. Wildcard issuance must be done via ACMEv2 using the DNS-01 challenge. See this post for more technical information.
I successfully renewed a certificate but validation didn’t happen this time – how is that possible?
Once you successfully complete the challenges for a domain, the resulting authorization is cached for your account to use again later. Cached authorizations last for 30 days from the time of validation.
If the certificate you requested has all of the necessary authorizations cached then validation will not happen again until the relevant cached authorizations expire.
Manual
Из названия можно догадаться, что настройка и установка SSL сертификата будет проводиться вручную 🙂 Пожалуй, сейчас это наиболее удобный вариант настройки сертификата для nginx ввиду “сыроватости” letsencrypt nginx плагина.
Standalone
Суть standalone заключается в том, что скрипт попытается поднять собственный веб-сервер на время процедуры получения сертификата (дабы подтвердить принадлежность домена), а для этого необходимо будет отключить уже работающий, дабы освободить порты 80 и 443. Для большинства веб-разработчиков данный вариант неудобен из-за необходимости отключения сайта.
Webroot
Данная опция подходит тем, кого не устраивает standalone. При указании ключа –webroot необходимо также будет указать и директорию, где располагаются файлы, которые обрабатывает веб-сервер.
$ ./letsencrypt-auto certonly --webroot -webroot-path /var/www/mydomain/
При работе с данной опцией необходимо настроить веб-сервер на чтение файлов соответствующим образом.
What ip addresses does let’s encrypt use to validate my web server?
We don’t publish a list of IP addresses we use to validate, and these IP addresses may change at any time. Note that we now validate from multiple IP addresses.
What is the lifetime for let’s encrypt certificates? for how long are they valid?
Our certificates are valid for 90 days. You can read about why here.
There is no way to adjust this, there are no exceptions. We recommend automatically renewing your certificates every 60 days.
What kind of support do you offer?
Let’s Encrypt is run by a small team and relies on automation to keep costs down. That being the case, we are not able to offer direct support to our subscribers. We do have some great support options though:
- We have really helpful documentation.
- We have very active and helpful community support forums. Members of our community do a great job of answering questions, and many of the most common questions have already been answered.
Here’s a video we like about the power of great community support.
Yet another инструкция по получению ssl-сертификата let’s encrypt
Тема получения сертификата Let’s Encrypt уже подымалась на хабре (см.
тут
), да и в сети можно найти много рецептов разного качества.
Читал я и ужасался: одни пишут, что то нужно nginx или apache остановить («на пару минуточек всего»), другие предлагают файлы подкладывать в папку веб-сервера (в соседней ssh-сессии), третьи — о том, как важно соблюсти правильный Content-type для файлов проверки домена…
Давайте попробуем обойтись без всего этого: чтобы не было мучительно больно ни на стадии установки, ни очередном продлении — даже если придётся обновлять сразу много доменов. Собственно, вот и вся цель моей небольшой заметки: это не пошаговый степ-бай-степ, не длинная теоретическая статья о том, как функционирует Let’s Encrypt — просто описывается правильный на мой взгляд подход, который будет правилен для конфигурации любой сложности.
Вся суть в двух словах: пусть Let’s Encrypt запустит веб-сервер на 9999 порту, а мы допишем конфиг nginx, чтобы он пробросил запрос на этот бекенд. Кому интересны детали — прошу под кат
Установка Let’s Encrypt в настоящее время рекомендуется из репозитория на гитхабе:
git clone https://github.com/letsencrypt/letsencrypt && cd letsencrypt
Для некоторых операционок уже есть готовые пакеты (более того — вместо команды letsencrypt-auto (которая по сути есть лишь обёртка для letsencrypt) можно использовать letsencrypt), но установка из репозитория меня, как программиста вполне устраивает.
Далее — нужно подготовить наш сервер.
В принципе, всё, что от нас требуется — это чтобы по адресу mysubdomain.mydomain.tld/.well-known/acme-challenge/6il4rb2ErDWuBnUsTw_qrJc_tXGNv43p2a4kQQc0CvE отдавался заранее определённый контент с нужными заголовками.
Переложим эту работу на сам Let’s Encrypt: пусть сам подымет на 127.0.0.1:9999 собственный веб-сервер, а мы — лишь допишем в конфиг nginx правило для проброса запросов на этот бекенд. Не нужно ни останавливать ничего, ни тем более создавать файлы вручную.
Итак. Создаём файл /etc/nginx/template/letsencrypt.conf следующего вида:
location ~ ^/(.well-known/acme-challenge/.*)$ {
proxy_pass http://127.0.0.1:9999/$1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
И подключим в конфиг-файлы нужных поддоменов:
include template/letsencrypt.conf;
Собственно, это всё. Дальше можно запустить одну-единственную команду — собственно запустить Let’s encrypt:
letsencrypt-auto --agree-tos --renew-by-default --standalone --standalone-supported-challenges http-01 --http-01-port 9999 --server https://acme-v01.api.letsencrypt.org/directory certonly -d mydomain.tld -d www.mydomain.tld -d i1.mydomain.tld -d i2.mydomain.tld
Здесь я получаю сертификат сразу для четырёх поддоменов, указываю, что нужно запустить веб-сервер на порту 9999, согласиться с лицензионным соглашением. (В принципе, можно указать в командной строке е-мейл, чтобы вообще не пришлось в интерактивный режим входить и довносить эту информацию: читайте описание ключей в документации)
В принципе, больше описывать нечего. Как внести сертификат в конфиг-файл nginx достаточно хороших и правильных описаний.
Единственное — осталось добавить в cron команду автоматического продления:
letsencrypt-auto renew >> /dev/null 2>&1
В getting-started приведены другие примеры скриптов обновления, рекомендую посмотреть: можно предусмотреть допустим отправку письма в случае, если обновление закончилось неудачей или автоматически рестартовать демон веб-сервера.
Вот и всё. От себя добавлю, что очень не люблю быть в первых рядах новой технологии («пока не выйдет первый сервис-пак — нет смысла обновлять винду на новую»), но в принципе, вижу, что Let’s Encrypt уже можно потихоньку начинать использовать в продакшн.
PS В качестве основы для своей заметки я взял статью Дмитрия из его блога. Не знаю, есть ли он на хабре, в любом случае от меня — большое спасибо.
Вот и всё
Если вам близки по духу tee и sed, то есть гораздо более короткая инструкция по настройке связки Let’s Encrypt и nginx, при условии корректно настроенного hostname. Только копируй команды и вставляй.
Если нужно добавить поддомен или домен в сертификат
Если вы вдруг забыли указать поддомен www, или вам нужно добавить другой домен или поддомен в сертификат (которых может быть до 100 в одном сертификате), то это легко сделать после получения сертификата. Просто запустите команду еще раз, добавив требуемое имя:
Если нужно получить сертификат для домена без сайта…
Типичный пример — сертификат для выделенных под SMTP или IMAP серверов, на которых вообще нет каких-то сайтов. Либо используйте универсальный переадресатор что выше, либо…
Использование let’s encrypt для внутренних серверов
Let’s Encrypt — это центр сертификации, который предоставляет бесплатные сертификаты в полностью автоматизированном процессе. Эти сертификаты выдаются по протоколу ACME. За последние два года в Интернете широко использовалась технология Let’s Encrypt — более 50% веб-сертификатов SSL / TLS теперь выдает Let’s Encrypt.
В этом посте описывается, как выдавать сертификаты Let’s Encrypt для внутренних серверов.
Хотя и существует множество инструментов для автоматического обновления сертификатов для общедоступных веб-серверов (certbot, simp_le, я писал о том, как это сделать), трудно найти какую-либо полезную информацию о том, как выдавать сертификаты для внутренних серверов, не подключенных к Интернету, и / или устройства с Let’s Encrypt.
В Datto мы выдали сертификат на каждую из наших 90 000 устройств BCDR, использующих именно этот механизм.
Содержание
- Как это работает?
- Пример: внутренний сервер 10.1.1.4, он же. xi8qz.example.com
2.1. Предварительные требования: назначение домена для каждой машины (шаги 1-3)
2.2. Запрос сертификата (шаги 4-14) - Рекомендации по развертыванию: ограничения скорости Let’s Encrypt.
Hello Hacker News, впервые на главной странице HN! Для меня это большая честь! Я ответил на все вопросы в разделе комментариев.
Если вы ищете реализацию этой идеи, вам может быть интересен localtls. Я сам не тестировал, но похоже, что он делает то же самое, что я здесь описываю.
Как это работает?
Чтобы выпустить сертификат с помощью Let’s Encrypt, вы должны доказать, что вы либо являетесь владельцем веб-сайта, для которого хотите выпустить сертификат, либо владеете доменом, на котором он работает. Обычно автоматизированные инструменты, такие как certbot, используют HTTP-запрос для подтверждения права собственности на сайт с использованием.well-knownкаталога. Хотя это прекрасно работает, если сайт подключен к Интернету (и Let’s Encrypt может проверять файлы HTTP-запросов с помощью простого HTTP-запроса), он не работает, если ваш сервер работает на10.1.1.4или на любом другом внутреннем адресе.DNS решает эту проблему, позволяя подтвердить право собственности на домен с помощью
TXT-записи DNS_acme-challenge.example.com. Let’s Encrypt проверит, что запись соответствует ожидаемому, и выдаст ваш сертификат, если все сложится.Итак, действительно волшебными ингредиентами для выдачи сертификатов для внутренних компьютеров, не подключенных к Интернету, являются:
Пример: внутренний сервер 10.1.1.4, он же. xi8qz.example.com
На следующей диаграмме показано, как мы реализовали интеграцию Let’s Encrypt для наших устройств резервного копирования Datto. Каждое устройство (читайте: внутренний сервер) находится за NAT и имеет собственный локальный IP-адрес.
Общий подход прост: устройство регулярно обращается к нашему серверу управления, чтобы обеспечить доступ к нему через его собственный поддомен. Если его локальный IP-адрес изменяется, он запускает обновление своего собственного поддомена. Кроме того, он регулярно проверяет, действителен ли сертификат, и запрашивает обновление, если он устарел.
Вот немного подробностей об этом процессе:

Участники этого процесса:
В этом примере предположим, что мы пытаемся выпустить сертификат для устройства с идентификатором xi8qz и локальным IP-адресом 10.1.1.4. С точки зрения этого устройства необходимо сделать два запроса:
2.1. Предварительные требования: назначение домена для каждой машины (шаги 1-3)
Как упоминалось выше, нам нужно дать каждому устройству правильное доменное имя, чтобы иметь возможность подтвердить право собственности на Let’s Encrypt, поэтому нам нужно купить домен (здесь: example.com) и делегировать его NS-записи нашему серверу DDNS:
$ dig short NS example.com
ddns1.mycompany.com.Вдобавок к этому нам нужна возможность динамически добавлять и удалять записи из него (через какой-то API). Я ранее писал о том, как развернуть собственный DDNS-сервер, если вам интересно.
После того, как все это настроено, нам нужно убедиться, что запись A машины обновляется при изменении ее IP-адреса. Для нашей внутренней машины давайте назначим xi8qz.example.com в качестве домена. Если все работает правильно, вы сможете разрешить этот домен по его IP-адресу, используя обычный DNS-запрос:
$ dig short xi8qz.example.com
10.1.1.42.2. Запрос сертификата (шаги 4-14)
Предполагая, что теперь вы полностью контролируете зону DNS для example.com и можете быстро редактировать ее динамически, у вас все готово для фактической выдачи сертификатов для вашего локального домена устройства через Let’s Encrypt.
В нашем примере устройства оно будет регулярно проверять, действителен ли существующий сертификат (шаг 4). Если сертификата нет или срок действия существующего скоро истечет, устройство сгенерирует пару ключей и запрос на подпись сертификата (CSR), используя назначенное ему имя хоста (здесь: xi8qz.example.com) в качестве CN, и оно отправит этот CSR на управляющий сервер (шаг 5).
После авторизации запроса (важный шаг, не показанный на схеме!), Управляющий сервер запрашивает DNS-запрос для данного домена из ACME API через вызов Pre-Authorization / new-authz API (шаг 6). ACME API отвечает запросом DNS (шаг 7). Если все идет хорошо, это выглядит примерно так:
{
"identifier": {
"type": "dns",
"value": "xi8qz.example.com"
},
"status": "pending",
"expires": "2021-04-15T21:26:29Z",
"challenges": [
{
"type": "dns-01",
"status": "pending",
"uri": "https://acme-staging.api.letsencrypt.org/acme/challenge/VtjihR4X8nLAj4MDwI...",
"token": "aLptEKAeUOajkiGrx-kkbjUX4b1MC..."
},
// ...
],
// ...
}Используя этот ответ, управляющий сервер должен установить запись DNS TXT на _acme-challenge.xi8qz.example.com (шаг 8) и уведомить ACME API о том, что ответ на запрос был размещен (шаг 9).
После того, как ответ на запрос был проверен с помощью Let’s Encrypt (шаг 10-11), сертификат можно, наконец, запросить с помощью CSR (шаг 12-13).
После того, как Let’s Encrypt ответит сертификатом, вы увидите на проводе что-то вроде этого:
-----BEGIN CERTIFICATE-----
MIIGEjCCBPqgAwIBAgISAyk2izMz7OXSqHeZhg rUR5uMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
...Если декодировать с помощью openssl, мы увидим, что это настоящая сделка:
$ openssl x509 -in www.crt -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
03:29:36:8b:33:33:ec:e5:d2:a8:77:99:86:0f:ab:51:1e:6e
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3
Validity
Not Before: Jul 18 23:37:35 2021 GMT
Not After : Oct 16 23:37:35 2021 GMT
Subject: CN=xi8qz.example.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:be:69:df:28:04:9c:2b:e9:94:72:c3:de:a6:fd:
a4:38:93:be:43:a7:81:8b:dc:9a:be:19:0d:c0:d1:
...Этот сертификат затем возвращается в машину (шаг 14). После перезапуска веб-сервера устройства / сервера к его веб-интерфейсу можно будет получить доступ через HTTPS в браузере или из командной строки:
$ curl -v https://xi8qz.example.com/login
* Trying 10.1.1.4...
* TCP_NODELAY set
* Connected to xi8qz.example.com (10.1.1.4) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server accepted to use http/1.1
* Server certificate:
* subject: CN=xi8qz.example.com
* start date: Jul 18 23:37:35 2021 GMT
* expire date: Oct 16 23:37:35 2021 GMT
* subjectAltName: host "xi8qz.example.com" matched cert's "xi8qz.example.com"
* issuer: C=US; O=Let's Encrypt; CN=Let's Encrypt Authority X3
* SSL certificate verify ok.
> GET /login HTTP/1.1
> Host: xi8qz.example.com
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Sun, 05 Aug 2021 17:38:49 GMT
< Server: Apache/2.4.18 (Ubuntu)
...Рекомендации по развертыванию: ограничения скорости Let’s Encrypt.
Важно отметить, что если вы планируете реализовать этот механизм для большого количества серверов, вы используете staging среды Let’s Encrypt для тестирования и, что более важно, учитываете лимиты выдачи сертификатов.
По умолчанию Let’s Encrypt позволяет выдавать только 20 сертификатов (в 2021 году) в неделю для одного и того же домена или одной и той же учетной записи. Чтобы увеличить это число, вы должны либо запросить более высокий лимит выдачи, либо добавить свой домен в список общедоступных суффиксов (обратите внимание: добавление вашего домена здесь имеет другие последствия!).
Из-за этих ограничений скорости жизненно важно, чтобы вы распределили начальное развертывание настолько, чтобы оставаться ниже ограничения скорости, и чтобы вы оставили достаточно места для добавления будущих серверов. Также рассмотрите возможность продления в первоначальном плане развертывания.
Резюме
Как видите, это не так уж и сложно.
Сначала мы присвоили каждому устройству (так называемому внутреннему серверу) публичное доменное имя, используя наш собственный динамический DNS-сервер и выделенную зону DNS. Используя домен, назначенный серверу (здесь:
xi8qz.example.com), мы затем использовали предложение бесплатного сертификата Let’s Encrypt и их запрос DNS, чтобы выпустить сертификат для этого сервера.
Сделав это для всех внутренних серверов, мы можем обеспечить безопасную связь в нашей внутренней ИТ-инфраструктуре без необходимости развертывания настраиваемого сертификата CA или необходимости платить за сертификаты.
Интересные Github проекты по этой теме:
https://github.com/RealTimeLogic/SharkTrust
https://github.com/joohoi/acme-dns
https://github.com/skoerfgen/CertLE
https://github.com/Corollarium/localtls
Немного рекламы: На платформе https://rotoro.cloud/ вы можете найти курсы с практическими занятиями:
Настройка ssl в nginx
Итак, если процедура с созданием сертификатов в manual режиме прошла успешно, то в вышеупомянутой директории мы найдем все необходимые файлы для настройки безопасного соединения.
- privkey.pem – наш приватный ключ
- cert.pem – сертификат сервера
- chain.pem – корневой (root) и промежуточный (intermediate)
- fullchain.pem – все необходимые нам сертификаты для настройки веб-сервера.
Как же в данном случае будет выглядеть настройка Nginx?
Настройка ssl сертификатов для других веб-серверов
В поставке letsencrypt помимо плагина для работы с Apache имеется ряд других, а именно:
- standalone
- webroot
- manual
- nginx
Подготовим nginx к получению сертификатов
В общем случае для получения сертификата необходимо во всех блоках server добавить следующий блок до других блоков location:
location /.well-known {
root /var/www/html;
}Понятно, что вписывать для каждого сайта такой блок явно — это моветон, потому создадим файл /etc/nginx/acme с содержанием блока выше.
# cat /etc/nginx/acme
location /.well-known {
root /var/www/html;
}Затем для каждого домена и поддомена, для которых нужно получить сертификаты, в блоке server перед всеми блоками location укажем:
include acme;Хосты-редиректоры (например, с голого домена на www) можно пропустить. ACME сервер обязан учитывать стандартную переадресацию. Подробней об этом ниже.
Перезагрузим nginx и проверим что наш тестовый файл виден:
Получаем сертификаты
У Let’s Encrypt есть лимиты на количество обращений за сертификатами, потому сначала попробуем получить необходимый сертификат в режиме для тестов:
Проверим полученный сертификат
Убедимся что полученный сертификат — именно тот, что нам нужен:
Проверка домена
Let’s Encrypt идентифицирует web-сервер с запущенным агентом по открытому ключу. Открытый и закрытый ключи генерируются агентом перед первым подключением к Центру сертификации Let’s Encrypt. После подключения агента к Центру Сертификации, создаётся аккаунт администратора сервера.
Продление ssl сертификата
Ранее я уже упоминал о том, что бесплатные SSL сертификаты “живут” только 90 дней, поэтому после их истечения необходимо будет запускать процедуру продления, благо это тоже бесплатно 🙂
Что же из себя представляет процесс продления?
Как утверждают в Let’s Encrypt, перед истечением, на почту, указанную при создании, приходит соответствующее письмо-уведомление о том, что пора бы продлить сертификат. Чтобы это сделать вручную достаточно запустить команду:
$ ./letsencrypt-autoИ следовать инструкциям на экране. Автоматическое же продление можно настроить используя конфигурационный файл и обычный crontab. Желательно настроить крон таким образом, чтобы продление происходило не чаще 1 раза в месяц.
Если вы работаете из под Windows, то letsencrypt можно развернуть, используя Vagrant или Docker. Правда в этом случае для правильной настройки веб-сервера необходимо будет вручную переместить все файлы на сервер.
Продление сертификатов
Сертификаты выдаются на три месяца. Не на полгода, не на год, а лишь на три месяца. Естественно это вызывает вопросы. Нужно ли проходить всю эту процедуру через три месяца? Нужно ли это делать всегда до искончания веков? Может стоит всё-таки вложиться в платный сертификат чтобы забыть об этом всем и не воспоминать пару лет?
Но нет, не спешите искать платежные средства! Как и было обещано в начале статьи, с обновлением сертификатов проблем нет.
Регистрация в let’s encrypt
Регистрацию нужно сделать только один раз:
Установка ssl сертификата для apache
Мой блог работает на связке LAMP, т.е. Linux, Apache, MySQL и PHP. Разработчики Let’s Encrypt постарались на славу и упростили настройку сертификата для Apache до уровня “проще некуда”. Весь процесс сводится к следующим шагам:
Установка в jessie
Если у вас еще в ходу актуальный на конец 2021 года Debian stable “jessie”, то всё лишь немного сложнее.
Шаг 2: создание сертификата
Откройте командную строку (cmd) от имени администратора и поочерёдно введите следующие команды:
- Выполните
C:wacswacs.exe. - Далее выберите:
- Укажите ваше доменное имя и два раза нажмите Enter для подтверждения.
- Затем последовательно выберите:
- Укажите папку для сохранения сертификатов
C:wacscrt. - После этого выберите:
- Укажите адрес электронной почты для уведомлений об ошибках.
- На дополнительные вопросы отвечайте следующим образом:
Выпуск и отзыв сертификатов
После авторизации ключевой пары, запрос, обновление и отзыв сертификатов становится делом одной минуты—агент просто посылает текстовые сообщения в Центр сертификации
Will let’s encrypt issue organization validation (ov) or extended validation (ev) certificates?
We have no plans to issue OV or EV certificates.
