Эта статья появилась на моем блог и Средний Анкет Поделись с друзьями 😉
В отличие от других эмитентов сертификата SSL, Давайте зашифруем не только бесплатно в использовании, но и прост в установке и обновлении. Эта рецензия подчеркивает шаги, которые я выполнил, чтобы установить свою на обоих Hoo.gy и Hoo.gy Blog Анкет
Мотивация написать эту статью в три раза. Во -первых, эта статья служит ссылкой на будущие потребности, используя Давайте зашифруем Анкет Во -вторых, обмен опытом с сообществом разработчиков является еще одной формой обучения. В -третьих, как знак признательности Команда, которая демократизирует Эта основная часть инфраструктуры безопасности.
Эта статья разделена на 4 основных раздела:
- Установите необходимое программное обеспечение
- Генерировать ключ и сертификат
- Установите сертификат (ы) на nginx
- Применение htts перенаправление
- Сертификат Автоопроставление
Благодарности: Моему другу и ботаникам безопасности @JC_UWIMPUHWE Для корректуры и обогащения идей.
Установите необходимое программное обеспечение
Hoo.gy Бежит на Ubuntu 14 LTS Linux Box расположен в Нью -Йорке Digitalocean Дата центр. Веб -сервер Nodejs в сочетании с Nginx Анкет С этой точки зрения, я предполагаю, что ваша система запускает аналогичный стек.
Выдача сертификатов осуществляется через бота, Certbot и охватывает широкий спектр операционных систем и веб -серверов. Во -первых, шаг состоял в том, чтобы обновить и установить последние пакеты, а также убедиться, что Ubuntu включает новый источник пакетов.
$ sudo apt-get update $ sudo apt-get install software-properties-common $ sudo add-apt-repository ppa:certbot/certbot $ sudo apt-get update $ sudo apt-get install python-certbot-nginx
Второй шаг устанавливает Certbot на коробке. Следующая команда хороша для Nginx Server, но больше можно найти в eff.org Анкет
Есть два возможных режима для генерации сертификатов SSL. Это будет предметом следующего раздела.
Генерировать ключ и сертификат
Режим по умолчанию предназначен для обычных пользователей Linux. Все позаботятся после того, как вы запустите следующую команду. CERTBOT генерирует надлежащие ключи+сертификат и автоматически обновлять файлы конфигурации NGINX.
$ sudo certbot --nginx
Для более продвинутых пользователей, которые, скорее всего, они любят ключ+сертификат и устанавливают сертификаты по мере их удовольствия, эта команда поможет им:
$ sudo certbot --nginx certonly
Кроме того, после создания частного ключа и сертификата вам нужно будет установить сертификаты , Переплата https перенаправление и в Автоматизировать продление сертификата Анкет
Установите сертификат (ы) на nginx
Поскольку вы уже используете Nginx в производстве, скорее всего, вы не хотите, чтобы что -то не связывалось с вашими пользовательскими конфигурациями. Вторая команда дает вам именно это. Есть два способа установить сертификаты: во -первых, сохранить ваши конфигурации нетронутыми и символически Новые сертификаты. Второе — это, очевидно, чтобы изменить ссылки на конфигурацию на новое место. Я предпочел последний.
# in /etc/nginx/sites-enabled/[your-config-file] server{ ... listen 443 ssl; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ... }
По некоторым причинам я привык к Цепочка.crt за сертификат и key.crt для ключей. Переключатель не так сложно, хотя. Certbot генерирует одинаковые файлы под немного разными именами: privatekey.pem для ключей и fullchain.pem для сертификатов.
Применение https перенаправление
По этой теме много обсуждений. Разработчики программного обеспечения — худшие люди, с которыми можно обсудить. Мы всегда оказываемся в племени, и кто делает это лучше. Одним из способов, которые имели смысл в моем случае, было создать новый блок сервера в существующем файле конфигурации и перенаправить любой запрос на маршрут этот новый блок сервера, на блок сервера, который прослушивает только HTTPS. Новый блок каким -то образом выглядит следующим образом:
server{ listen 80; server_name example.com www.example.com; # redirect, and rewrite all links to https://example.com return 301 https://example.com$request_uri; # Alternatively: if you want to forward without rewriting requested URL return 301 https://$server_name$request_uri; }
Настройка конфигурации NGINX может быть совершенно новой темой самостоятельно, но я не могу закрыть этот пост, не говоря о двух вещах: автоматическое продление (с использованием задания Cron) и перенаправить весь трафик для обеспечения канала.
Автоматическое обновление
SSL -сертификаты выпуска Давайте зашифруем Последние 90 дней. Что неплохо само по себе. Если у вас есть 1000+ серверов для обновления каждые 90 дней, хотя … это был бы кошмар. Откуда вам нужна какая -то автоматизация. Как это сделать, это последняя тема в этом сообщении в блоге.
Прежде всего, чтобы продлить сертификат от Let’s Encrypt занимает секунду … если все работает в соответствии с планом.
$ sudo certbot renew --dry-run # or simply: # $ sudo certbot renew # restart the nginx server $ sudo nginx restart
Если вам повезло иметь меньшую конфигурацию и использовать стратегию автоматического обзора, у вас может быть Cronjob, похожий на следующее:
# file: /etc/cron.d/certbot 0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew
Код фрагмент из Ishigoya ~ serverfault
Можно настроить частоту и перезапустить команду. Cronjob дает вам возможность калибровать даты, используя этот звездный формат: Cronjob [минута, час, день месяца, месяц, день недели].
- Этот крон работает каждый день около 5:30 Время сервера: _30 5 * * * … _
- Этот работает в то же время, каждый раз в месяц (1 и 15-е) 30 5 1,15 * * …
- Этот последний работает так же, каждые два месяца: 30 5 * */2 *
Таким образом, ваш Cronjob может в конечном итоге выглядеть как следующее, если вы хотите продлевать сертификаты каждый день, около 5:30 серверного времени.
30 5 * * * certbot renew --post-hook "service nginx restart" # alternatively: using systemctrl # 30 5 * * * certbot renew --post-hook "systemctl reload nginx"
Пожалуйста, рассмотрите пожертвование для этой услуги на службу в Давайте зашифруем Несмотря на то, что мысли, обсуждаемые в этой статье, кажутся простыми (не говоря уже о наивном по безопасности), существуют улучшения, сделанные на вершине, давайте зашифруем основы, что делает этот выбор солидным. Если вы работаете в контейнерах, особенно в Kubernetes, вам следует проверить Келси Хайтауэр Kube Cert Manager Проект на GitHub. Netflix’s Лемур это еще одна альтернатива управлению сертификатами, вы можете прочитать Вступительная статья здесь Анкет
Список для чтения
- Как настроить SSL, давайте бесплатно зашифровать Heroku
- Вебсокеты над ssl с node.js и nginx
- Подробнее о NGINX HTTPS Пере перенаправление: 1 , 2 , 3
- Представление лемура
- Эллиптическая кривая конструкция личного ключа
Оригинал: «https://dev.to/murindwaz/how-to-install-lets-encrypt-ssl-certificate-on-ubuntu-and-nginx-server-59h»