Вступление
Let’s Encrypt - это новый центр сертификации (CA), который предоставляет простой способ получения и установки бесплатных сертификатов TLS / SSL, тем самым обеспечивая зашифрованный HTTPS на веб-серверах. Это упрощает процесс, предоставляя программный клиент Certbot, который пытается автоматизировать большинство (если не все) необходимых шагов. В настоящее время весь процесс получения и установки сертификата полностью автоматизирован на веб-серверах Apache и Nginx.
В этом руководстве мы покажем вам, как использовать Certbot для получения бесплатного сертификата SSL и использовать его с Nginx в Ubuntu 14.04 LTS. Мы также покажем вам, как автоматически обновить ваш сертификат SSL.
В этом руководстве мы будем использовать файл конфигурации Nginx по умолчанию вместо отдельного файла блока сервера. We recommend создает новые файлы блоков сервера Nginx для каждого домена, потому что это помогает избежать некоторых распространенных ошибок и поддерживает файлы по умолчанию в качестве резервной конфигурации, как и предполагалось. Если вы хотите настроить SSL, используя вместо этого серверные блоки, вы можете следоватьthis Nginx server blocks with Let’s Encrypt tutorial.
Предпосылки
Прежде чем следовать этому уроку, вам понадобится несколько вещей.
-
Сервер Ubuntu 14.04 с пользователем без полномочий root с правами
sudo
. Вы можете узнать, как создать такую учетную запись пользователя, следуя нашимinitial server setup for Ubuntu 14.04 tutorial. -
Установлен Nginx,How To Install Nginx on Ubuntu 14.04 LTS
-
Вы должны владеть или контролировать зарегистрированное доменное имя, с которым вы хотите использовать сертификат. Если у вас еще нет зарегистрированного доменного имени, вы можете зарегистрировать его у одного из множества регистраторов доменных имен (например, Namecheap, GoDaddy и т. Д.).
-
DNSA Record, который указывает вашему домену на общедоступный IP-адрес вашего сервера. Вы можете следить заthis hostname tutorial, чтобы узнать, как их добавить. Это необходимо из-за того, что Let’s Encrypt подтверждает, что вы являетесь владельцем домена, для которого выдается сертификат. Например, если вы хотите получить сертификат для
example.com
, этот домен должен разрешиться на ваш сервер, чтобы процесс проверки работал. Наша установка будет использоватьexample.com
иwww.example.com
в качестве доменных имен, поэтомуboth DNS records are required.
После того, как у вас есть все необходимые условия, давайте перейдем к установке Certbot, клиентского программного обеспечения Let Encrypt.
[[step-1 -—- install-certbot]] == Шаг 1. Установка Certbot
Первым шагом к использованию Let's Encrypt для получения сертификата SSL является установка программного обеспеченияcertbot
на ваш сервер. Разработчики Certbot поддерживают свой собственный репозиторий программного обеспечения Ubuntu с последними версиями программного обеспечения. Поскольку Certbot находится в такой активной разработке, стоит использовать этот репозиторий для установки более нового Certbot, чем предусмотрено Ubuntu.
Сначала добавьте репозиторий:
sudo add-apt-repository ppa:certbot/certbot
Вам нужно будет нажатьENTER
для подтверждения. После этого обновите список пакетов, чтобы получить информацию о пакете нового репозитория:
sudo apt-get update
И, наконец, установите Certbot сapt-get
:
sudo apt-get install python-certbot-nginx
Клиентcertbot
Let's Encrypt готов к использованию.
[[step-2 -—- setting-up-nginx]] == Шаг 2. Настройка Nginx
Certbot может автоматически настраивать SSL для Nginx, но он должен быть в состоянии найти правильный блокserver
в вашей конфигурации. Для этого он ищет директивуserver_name
, соответствующую домену, для которого вы запрашиваете сертификат. Если вы начинаете с новой установки Nginx, вы можете обновить файл конфигурации по умолчанию:
sudo nano /etc/nginx/sites-available/default
Найдите существующую строкуserver_name
:
/etc/nginx/sites-available/default
server_name localhost;
Заменитеlocalhost
своим доменным именем:
/etc/nginx/sites-available/default
server_name example.com www.example.com;
Сохраните файл и выйдите из редактора. Проверьте синтаксис ваших изменений конфигурации:
sudo nginx -t
Если это работает без ошибок, перезагрузите Nginx для загрузки новой конфигурации:
sudo service nginx reload
Certbot теперь сможет найти правильный блокserver
и обновить его. Теперь мы обновим наш брандмауэр, чтобы разрешить HTTPS-трафик.
[[шаг-3 -—- получение-an-ssl-сертификата]] == Шаг 3 - Получение сертификата SSL
Certbot предоставляет различные способы получения SSL-сертификатов с помощью различных плагинов. Плагин Nginx позаботится о перенастройке Nginx и перезагрузке конфигурации при необходимости:
sudo certbot --nginx -d example.com -d www.example.com
Это запускаетcertbot
с плагином--nginx
, используя-d
, чтобы указать имена, для которых мы хотим, чтобы сертификат был действительным.
Если вы впервые запускаетеcertbot
, вам будет предложено ввести адрес электронной почты и согласиться с условиями обслуживания. После этогоcertbot
свяжется с сервером Let's Encrypt, а затем запустит запрос, чтобы убедиться, что вы контролируете домен, для которого запрашиваете сертификат.
В случае успехаcertbot
спросит, как вы хотите настроить параметры HTTPS:
OutputPlease choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
Выберите свой выбор и нажмитеENTER
. Конфигурация будет обновлена, и Nginx перезагрузится, чтобы подобрать новые настройки. certbot
завершится сообщением о том, что процесс прошел успешно и где хранятся ваши сертификаты:
OutputIMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your cert will
expire on 2017-10-23. To obtain a new or tweaked version of this
certificate in the future, simply run certbot again with the
"certonly" option. To non-interactively renew *all* of your
certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- 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
Ваши сертификаты теперь загружены, установлены и настроены. Попробуйте перезагрузить свой сайт с помощьюhttps://
и обратите внимание на индикатор безопасности своего браузера. Это должно означать, что сайт защищен должным образом, обычно с зеленым значком замка. Если вы протестируете свой сервер с помощьюSSL Labs Server Test, он получит оценкуA.
[[step-4 -—- verifying-certbot-auto-Renewal]] == Шаг 4. Проверка автоматического продления Certbot
Сертификаты Let's Encrypt действительны только в течение девяноста дней. Это должно стимулировать пользователей автоматизировать процесс обновления их сертификатов. Пакетcertbot
, который мы установили, позаботится об этом за нас, дважды в день запуская «certbot refresh» через системный таймер. В дистрибутивах, не относящихся к systemd, эта функциональность обеспечивается скриптом, помещенным в/etc/cron.d
. Эта задача выполняется два раза в день и обновляет любой сертификат, срок действия которого истекает в течение тридцати дней.
Чтобы протестировать процесс обновления, вы можете выполнить пробный запуск сcertbot
:
sudo certbot renew --dry-run
Если вы не видите ошибок, все готово. При необходимости Certbot обновит ваши сертификаты и перезагрузит Nginx, чтобы получить изменения. Если процесс автоматического продления не удастся, Let’s Encrypt отправит сообщение на указанный вами адрес электронной почты, предупреждая вас, когда ваш сертификат скоро истечет.
Заключение
В этом руководстве мы установили клиент Let’s Encryptcertbot
, загрузили сертификаты SSL для нашего домена, настроили Nginx для использования этих сертификатов и настроили автоматическое продление сертификатов. Если у вас есть дополнительные вопросы об использовании Certbot,their documentation - хорошее место для начала.