Однажды у меня возникла необходимость установить бесплатный ssl-сертификат от Let's Encrypt на сайт на незнакомом работающем сервере. До этого такого опыта работ у меня не было, но удалось нагуглить данный процесс в Интернете. В итоге операция прошла успешно, и по этой же методике производится обновление этого сертификата.
Данную процедуру производил на развернутой на виртуалке Ubuntu.
1. Сначала устанавливаем приблуду для получения сертификата от Let's Encript
git clone https://github.com/letsencrypt/letsencrypt
2. Переходим в каталог
cd letsencrypt
3.1 Выполняем команду запуска процедуры (данный вариант в настоящий момент не проходит, ругаясь на аргумент --agree-dev-preview)
./letsencrypt-auto --agree-dev-preview --server \https://acme-v01.api.letsencrypt.org/directory -a manual auth
3.2 Выполняем команду запуска процедуры (просто убрал косячный аргумент)
./letsencrypt-auto --server \https://acme-v01.api.letsencrypt.org/directory -a manual auth
4. Процесс затребует ввести адрес электронной почты и имя домена, для которого генерируется сертификат. Так же потребуется согласиться с сохранением вашего IP-адреса в логах Let's Encrypt.
5. Далее потребуется произвести операцию подтверждения прав владения доменом. В корне сайта, который доступен из интернет потребуется создать каталог /.well-known/acme-challenge
, где следует разместить файл под именем и с содержимым, предложенными программой генерации. Создаем каталог и файл, после чего соглашаемся с проверкой прав.
6. В случае успешного подтверждения прав в каталоге letsencrypt/live/имя_домена
появятся файлы сгенерированного сертификата.
7. В моем случае далее потребовалось закинуть файлы из вышеуказанного каталога privkey.pem
и fullchain.pem
в каталог сертификатов nginx-сервера (/etc/nginx/ssl
). Конфигурация ssl-сертификата сервера должна указывать на данные файлы.
8. Выполняем проверку конфигурации nginx
sudo nginx -t
9. Мягко перезагружаем сервер
sudo nginx -s reload
10. Проверяем сертификат на странице сайта