ГлавнаяОперационные системыLinuxКак настроить бесплатный SSL-сертификат Let’s Encrypt в Nginx (Ubuntu)

Как настроить бесплатный SSL-сертификат Let’s Encrypt в Nginx (Ubuntu)

Если вы прочитали много статей о советы по конфиденциальности , вы наверняка встретите совет, в котором вам предлагается установить расширение «HTTPS везде», чтобы оно автоматически перенаправляло вас на HTTPS-версию веб-сайт по возможности. Плохо то, что расширение HTTPS везде работает только в том случае, если на посещаемом вами веб-сайте реализован SSL, а для большинства веб-мастеров это само по себе может оказаться сложной (и дорогостоящей) задачей. К счастью, благодаря движению Давайте зашифруем веб-мастерам теперь стало проще добавлять SSL-сертификаты на свои сайты.

Раньше (и в настоящее время) для настройки сертификата SSL необходимо сначала сгенерировать закрытый ключ на вашем сервере, затем купить сертификат SSL в центре сертификации (что может быть дорого) и, наконец, настроить его. на сервере. В этом процессе задействовано много технических моментов, и неправильное выполнение сделает SSL-сертификат бесполезным. С помощью проекта Let’s Encrypt можно быстро и бесплатно добавить сертификат SSL на свои сайты. И благодаря поддержке таких крупных игроков отрасли, как Mozilla, Akamai, Cisco, EFF и Google, он поддерживается большинством браузеров и операционных систем.

В этом руководстве мы рассмотрим шаги по настройке SSL-сертификата Let’s Encrypt на сервере Nginx. Для этого руководства мы используем сервер Ubuntu 14.04 и предполагаем, что вы используете рабочий сервер Nginx Ubuntu. Инструкция может отличаться для сервера Ubuntu 16.04.

Установить Let’s Encrypt

Во-первых, чтобы установить Let’s Encrypt, вам потребуется gitклонировать его из репозитория git. Установите git с помощью следующей команды:

sudo apt-get install git bc

После установки клонируйте репозиторий Let’s Encrypt:

sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

Настройка среды

Прежде чем мы приступим к установке и настройке сертификата SSL, важно разрешить доступ к папке .well-knownв корневом веб-каталоге. По умолчанию все файлы и папки с расширением «.» перед именем файла скрыты и недоступны для публики. Однако в этом случае нам нужно будет предоставить общедоступному доступу к папке .well-known, поскольку именно здесь Let’s Encrypt будет хранить специальный файл для проверки.

Перейдите в папку конфигурации вашего сайта Nginx и откройте ее (если у вас есть собственный файл конфигурации для вашего

Установить Let’s Encrypt

олчанию:

cd /etc/nginx/sites-available
sudo nano default

Добавьте следующие строки в блок сервера:

location ~ /\.well-known {
    allow all;
}

Сохраните (Ctrl + O) и закройте (Ctrl + x) файл конфигурации.

Проверьте конфигурацию Nginx:

sudo nginx -t

Если все настройки работают нормально, перезагрузите конфигурацию:

sudo service nginx reload

Создать SSL-сертификат

Теперь, когда вы закончили настройку Nginx, следующим шагом будет установка SSL-сертификата.

Перейдите в папку Let’s Encrypt:

cd /opt/letsencrypt

Для создания сертификата выполните следующую команду:

./letsencrypt-auto certonly -a webroot --webroot-path=/usr/share/nginx/html -d example.com

Здесь нужно кое-что изменить:

  • Измените webroot-pathна корневой путь к документу вашего сайта. По умолчанию используется «/user/share/nginx/html», но ваша конфигурация может отличаться.
  • Замените «example.com» на свое собственное доменное имя. Обратите внимание, что «example.com» и «www.example.com» — это два разных домена. Если вы хотите, чтобы сертификат поддерживал несколько доменов, просто добавьте -d example1.comв конец команды. Например, чтобы настроить сертификат SSL для доменов «example.com», «www.example.com», «example1.com» и «www.example1.com», используйте следующую команду:
./letsencrypt-auto certonly -a webroot --webroot-path=/usr/share/nginx/html -d example.com -d www.example.com -d example1.com -d www.example1.com

При первом запуске скрипт установит в вашу систему несколько файлов Python. Как только это будет сделано, начнется процесс генерации сертификата. Сначала он запросит ваш адрес электронной почты:

nginx-letsencrypt-адрес электронной почты

После этого вам будет предложено прочитать Условия обслуживания на веб-сайте Let’s Encrypt. Выберите «Согласен».

Создать SSL-сертификатtist.ru/wp-content/uploads/2024/05/nginx-letsencrypt-read-tos.png" alt="nginx-letsencrypt-read-tos">

Если вы видите следующее сообщение:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/example.com/fullchain.pem. Your cert
   will expire on 2016-10-02. To obtain a new or tweaked version of
   this certificate in the future, simply run letsencrypt-auto again.
   To non-interactively renew *all* of your certificates, run
   "letsencrypt-auto 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

Это означает, что вы успешно создали сертификат SSL для своего сайта(ов). Если вместо этого вы увидите сообщение об ошибке, исправьте ошибку и повторите попытку.

Активация SSL-сертификата для вашего сайта

Теперь, когда вы создали сертификат SSL, пришло время активировать его для вашего сайта.

Вернитесь в папку конфигурации Nginx и откройте файл конфигурации сайта:

cd /etc/nginx/sites-available
sudo nano default

Создайте новый блок сервера и добавьте в него следующую конфигурацию:

server {
        server_name example.com www.example.com;
 
        listen 443 ssl;
 
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
}

Сохраните и закройте файл.

Примечание : приведенное выше представляет собой упрощенную версию блока конфигурации Nginx. Вам следует добавить в блок свою собственную конфигурацию.

Наконец, проверьте конфигурацию:

sudo nginx -t

Если все в порядке, перезагрузите Nginx:

sudo service nginx reload

Вот и все. Вы успешно настроили сертификат SSL для своих сайтов. Теперь вы можете загрузить версию URL-адреса «https», чтобы увидеть ее в действии.

Автоматическое продление SSL-сертификата Let’s Encrypt

В отличие от большинства коммерческих SSL-сертификатов, срок действия которых составляет не менее одного года, SSL-сертификат Let’s Encrypt действителен только в течение трех месяцев. По истечении этого времени вам придется продлить подписку, чтобы продолжить ее использование. В Let’s Encrypt есть опция renew, поэтому вы можете легко обновить свои сертификаты, не проходя всю установку заново. Следующие инструкции покажут вам, как настроить задание cron для автоматического продления вашего SSL-сертификата.

Все еще находясь на сервере, откройте crontab:

sudo crontab -e

Добавьте следующие строки:

00 0 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log
05 0 * * 1 /etc/init.d/nginx reload

Приведенные выше строки будут проверять дату истечения срока действия ваших SSL-сертификатов каждый понедельник в 12 часов утра и обновлять их, если срок их действия близок к завершению. Он также перезагрузит Nginx (в 00:05), чтобы убедиться, что обновленный сертификат используется.

Сохраните и закройте crontab.

Заключение

Если у вас небольшой веб-с

Активация SSL-сертификата для вашего сайта

— отличный вариант повысить доверие к вашему сайту. Его (относительно) легко настроить и он ничего не стоит (бесплатно, как пиво), поэтому нет причин не использовать его. Однако, поскольку он предоставляет сертификат с проверкой домена (DV) (самый основной вид сертификата SSL) только для тех компаний, которым требуются сертификаты SSL с проверкой организации (OV) или расширенной проверкой (EV), коммерческий сертификат SSL, вероятно, будет путь.

Интернет2 – HTTPS

Автоматическое продление SSL-сертификата Let’s Encrypt

Заключение

ПОХОЖИЕ СТАТЬИ

Популярные записи