Мой блог Admantium Хостерно на облачном сервере, управляемом с помощью Anisible. Эта статья показывает, как использовать поставщик облачных вычислений Hetzner для настройки сервера NGINX с шифрованием TLS. Мы создадим сервер через интерфейс управления и установите NGINX с помощью Anbible. Затем мы получим сертификаты формы, позволяющие шифровать и настроить Nginx только для предоставления HTTP-соединений.
Эта статья изначально появилась в мой блог .
Создание Hetzner Cloud Server
Хетцнер является немецким поставщиком облачного вычисления. Причина, по которой я выбираю их, заключается в том, что у них хорошие цены и очень удобный веб-интерфейс. Кроме того, имеют HTTP API , а также инструмент CLI, GO и Python библиотеки.
Как только у вас есть учетная запись, создайте новый проект.
Затем добавьте серверы. Добавление средств сервера: Решите местоположение, изображение Linux и тип. Затем дополнительно добавьте хранилище блок и открытый ключ SSH.
Перед первым загрузкой у вас есть только ограниченное количество изображений. Но как только сервер работает, вы можете выбрать из длинного списка даже экзотических производных Linux.
Наконец, после запущенного сервера вы можете увидеть и настроить его в представлении деталей.
Установка Nginx.
Я устанавливаю Nginx с официальным Обязательная роль от Nginx Отказ Эта роль дает вам большое количество контроля: установка из ОС или компиляции из источников, настройте Nginx.conf, добавьте другие сайты и даже загружать сертификаты, если у вас их уже есть. Проверьте доступные Базовая конфигурация и Загрузить конфигурацию Отказ
Я использую эту неизбежную конфигурацию:
- name: Install nginx gather_facts: true hosts: - admantium tags: - nginx become: true vars: nginx_install_from: 'os_repository' nginx_repository: deb https://nginx.org/packages/mainline/debian/ stretch nginx nginx_main_upload_enable: true nginx_main_upload_src: config/nginx.conf nginx_main_upload_dest: /etc/nginx/ nginx_http_upload_enable: true nginx_http_upload_src: config/http/*.conf nginx_http_upload_dest: /etc/nginx/conf.d/ roles: - nginxinc.nginx
Роль выполнена, nginx установлена.
Получить сертификаты с помощью шифрования
Установка действительных сертификатов с Давайте шифровать Ничего не более радости: установить и запустить Certbot
программа.
apt-get install certbot python-certbot-nginx certbot certonly --nginx
Затем скрипт просит вас автоматически настроить настройку NGINIX, или он показывает вам пути к сгенерированным сертификатам. Я выбрал последнее, и вручную вставил его.
server { server_name admantium.com; listen 443 ssl http2; ssl_certificate /etc/letsencrypt/live/admantium.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/admantium.com/privkey.pem;
Затем я добавил простую страницу «Hello World» и добрался до сервера, чтобы увидеть сертификат, используемый в подключении HTTPS.
Обеспечение веб-сервера
Заключительная часть — сделать соединение TLS еще более безопасным. После прочтения Список аспектов безопасности Я узнал следующее:
- Только разрешить
TLSV1.2.
иTLSV1.3
, Старая версия были скомпрометированы - Настройте сервер, чтобы предложить тщательно выбранный набор
SSL_CIPHERS
и скажите клиенту выбрать один из них - Установите
Строгательная транспортная безопасность
Заголовок и правильные перенаправления, чтобы разрешить только соединения TLS.
Это достигается со следующим конфигом:
## # SSL Settings ## ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256"; ssl_prefer_server_ciphers on; ssl_ecdh_curve secp521r1:secp384r1; add_header Strict-Transport-Security "max-age=15768000; preload" always;
Однажды на месте я использую SSL Labs сканер И может улучшить счет от C до A. Большой результат!
Заключение
Эта статья показала вам, как настроить сервер с поставщиком облачных вычислений. Вы также узнали, как применить официальную нежинную роль NGINX для установки и настройки веб-сервера. Наконец, я показал вам, как получить сертификаты с помощью Encrypt и как улучшить настройку NGINX TLS.
Оригинал: «https://dev.to/admantium/using-ansible-for-hosting-a-blog-on-a-cloud-server-4n4d»