В одной из старых статей я рассказал о способе для генерации бесплатного 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).
4. Нам нужно установить certbot, для этого выполним в шелле:
sudo apt install certbot
5. Выполняем создание сертификата вручную:
sudo certbot certonly --manual
Для 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 в логах, для этого жмём
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), нажимаем в консоли
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
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.
- Не приходит СМС для авторизации на сайте Госуслуги - 01.11.2024
- VSCode: Найти и удалить элементы xml - 29.10.2024
- WordPress: Ошибка в плагине WpDiscuz - 08.10.2024