Проблемът
Преминаване към Simple HTTP
Преминаване към DNS валидиране
Let's Encrypt е безплатна услуга, която генерира сертификати за защита на вашия уебсайт. Той поддържа генериране на различни типове сертификати, включително единичен домейн и заместващ знак. В допълнение, той има множество методи за удостоверяване на вашия домейн за генериране на сертификат.
http-01
(Прост HTTP)
dns-01
(DNS валидиране)
tls-sni-01
(Валдиране чрез използване на самоподписан сертификат - вече е отхвърлен )
Проблемът
За съжаление, през януари 2018 г. беше открита уязвимост, при която стана възможно генерирането на сертификати за домейни без предварително удостоверяване/упълномощаване. Например, сертификати могат да бъдат генерирани за домейни, които всъщност не притежавате.
Малко след това протоколът ( tls-sni-01
) беше прекратен и повечето нови издавания (нови сертификати) бяха блокирани от използване на протокола за удостоверяване.
Преминаване към Simple HTTP
Превключването към http-01
или „Simple HTTP“ удостоверяване е доста просто. Ако използвате certbot-auto
за генериране на вашите сертификати, Let's Encrypt вече ще е генерирал нов сертификат или ще го направи автоматично при следващото „подновяване“.
Ако използвате certbot
, трябва да използвате --preferred-challenge
параметъра:
certbot (...) --prefered-challenge
Това ще каже на Let's Encrypt да премине към http-01
.
Преминаване към DNS валидиране
Ако искате да избегнете цялата тази караница, е сравнително лесно да конфигурирате DNS валидирането на Let's Encrypt. Когато изпълнявате certbot
, добавете --preferred-challenges dns
като параметър:
certbot -d example.com --manual --preferred-challenges dns
certbot
ще отпечата нещо подобно на следното:
Please deploy a DNS TXT record under the name
_acme-challenge.example.com with the following value:
(random_string)
Once this is deployed,
Press ENTER to continue
След като добавите записа с вашия DNS доставчик, натиснете ENTER. След това ще трябва да настроите CRON задание за автоматично подновяване на вашия сертификат. Тъй като DNS валидирането е било използвано, няма да се налага да се притеснявате за пренасочване, както бихте направили за http-01
, (порт 80
към порт 443
).