Бесплатный SSL-сертификат

В одной из старых статей я рассказал о способе для генерации бесплатного SSL-сертификата.
Сегодня обнаружил подводные камни — SSL For Free (она же ZeroSSL) выдала мне, что мой лимит на бесплатный сертификаты исчерпан и теперь придётся приобрести коммерческий план минимум с тарифом Basic! Который стоит 10$ в месяц!

You have reached the maximum amount of 90-day certificates allowed on the Free Plan.

Ok, пойдём в обход…
1. Заходим на Let’s Encrypt
2. На странице приветствия находим ссылку для тех, у кого нет доступа к Shell:

If your hosting provider doesn’t want to integrate Let’s Encrypt, but does support uploading custom certificates, you can install Certbot on your own computer and use it in manual mode

3. Нам потребуется виртуальная машина с Линуксом (я воспользуюсь Kubuntu).

Будет время, гляну, как это можно реализовать прямо в Windows (у них есть реализация под Винду). В ней кроме сертификатов утилита создаёт задачу для Windows для автоматического обновления сертификатов, хотя нам они не подойдут, т.к. обновлённые сертификаты всё равно нужно будет руками закидывать на панель администрирования хостинга, а потом их активировать. Так что нужно будет не забыть удалить эту задачу. Но сама утилита удобнее, чем все эти пляски с бубнов для виртуалок.

 

4. Нам нужно установить certbot, для этого выполним в шелле:

sudo apt install certbot
В Linux-Mint также можно выбрать установку через Software Manager.

 

5. Выполняем создание сертификата вручную:

sudo certbot certonly --manual

Для Windows нужно выполнять в консоли (PowerShell), запущенной с правами админа:

Administrator: Windows PowerShell
.\certbot.exe certonly --manual

6. Указываем имя нашего домена (в новых версиях certbot первым шагом нужно указать адрес электронной почты для получения уведомлений, а потом согласиться с условиями использования):

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Please enter in your domain name(s) (comma and/or space separated)  (Enter 'c'
to cancel): dentnt.trmw.ru

7. Разрешаем сохранить наш IP в логах, для этого жмём Y , после чего нажимаем Enter :

NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.

Are you OK with your IP being logged?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y

8. Далее нам нужно создать на сервере файл 6Gt4QZgmyRtGTvlWPATqKLqva31MGyEDj6GxtNqbDns и поместить в него всего лишь одну строчку (6Gt4QZgmyRtGTvlWPATqKLqva31MGyEDj6GxtNqbDns.nFNCALfkNmb-SToGzoms_IyzXepYzt0OKUfTgpRc—U), согласно инструкции:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Create a file containing just this data:

6Gt4QZgmyRtGTvlWPATqKLqva31MGyEDj6GxtNqbDns.nFNCALfkNmb-SToGzoms_IyzXepYzt0OKUfTgpRc--U

And make it available on your web server at this URL:

http://dentnt.trmw.ru/.well-known/acme-challenge/6Gt4QZgmyRtGTvlWPATqKLqva31MGyEDj6GxtNqbDns

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
У вас соответственно будут другие имя файла и сгенерированная строка!

 

9. Поместив файл с указанной строкой в папку на сервере (у меня путь получился такой: /home/h123456789/dentnt.trmw.ru/docs/.well-known/acme-challenge), нажимаем в консоли Enter .

Если нажать Enter раньше, то проверка не пройдёт и файл нужно будет создавать заново (будет другое имя). В дополнение хочу напомнить (прежде всего себе :) ), что после того, как вы внесёте нужную строчку в файл, нужно закрыть текстовый редактор, а потом загрузить файл на сервер! Просто сохранить файл недостаточно, т.к. это временная копия, которая сохраняется на вашем компьютере, так что потом возвращаемся в FileZilla и у вас появляется запрос на загрузку этого файла на сервер.

 

10. Если всё прошло хорошо, нам сообщат в следующем сообщении в консоли:

Press Enter to Continue
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/dentnt.trmw.ru/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/dentnt.trmw.ru/privkey.pem
   Your cert will expire on 2021-04-20. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Осталось эти ключи сохранить в Панели управления хостинга, согласно их инструкции. У меня это RU-CENTER.

Использование сертификатов

Приватный ключ зашифрован, поэтому его не получится перекинуть на основную машину, из-за чего действия по установке сертификата придётся производить из гостевой (виртуальной машины)!

 

Для просмотра приватного ключа можно воспользоваться такой командой (предварительно изменив путь на свой):

sudo cat /etc/letsencrypt/live/dentnt.trmw.ru/privkey.pem
В Windows путь соответственно другой:

C:\Certbot\archive\dentnt.trmw.ru

 

Для отображения публичного ключа такая команда (путь нужно указать свой):

sudo cat /etc/letsencrypt/live/dentnt.trmw.ru/cert.pem

Список сохранённых сертификатов (и срок годности) можно посмотреть такой командой:

sudo certbot certificates

Продление сертификатов

Как было сказано в подсказке выше, продлить сертификаты можно одной командой:

sudo certbot renew

Ошибки

Если попытаться выполнить

sudo certbot certonly --manual

Можно получить такую сообщение:

Another instance of Certbot is already running.

В этом случае может помочь перезагрузка, либо можно найти и убить процесс certb.

Процесс установки сертификата на хостинг nic.ru (RU-CENTER) описан в конце прошлой статьи.

 



Подписаться
Уведомление о
guest
4 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Юлия

Добрый вечер! Спасибо! Установила сертификат и заодно узнала, что на Windows 10 можно поставить виртуальную машину с Linux. Отлично сработала реализация под винду. В командной строке сразу писать certbot —manual certonly. Тогда все ок!

Sleek Simon

Спасибо за инструкцию. Сделал через Certbot под Винду. Всё работает аналогично!