Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

1. В платформе УД реализован функционал автоматической генерации SSL сертификатов Let's Encrypt через встроенный certbot в микросервис iot-double-web.

Для этого необходимо отредактировать содержимое конфигурационного файла vars/default.yml,  в частности указать:

Содержимое конфигурационного файла vars/default.yml
...
web_enable_certbot: true
web_certbot_email: test@email.com
...

где

  • web_enable_certbot — параметр использования certbot для получения сертификатов Let's Encrypt;
  • web_certbot_email — e-mail владельца домена. Необходим для подтверждения валидности домена при получении сертификата Let's Encrypt.

 Вам потребуется зарегистрированное доменное имя и публичный IP адрес

Для применения настроек необходимо выполнить перезапуск контейнеров с микросервисами:

ansible-playbook install.yml

Для выполнения команды ansible-playbook необходимо находиться или указать путь до сценариев ansible для развертывания ядра платформы Eltex-SC.


2. Для подключения собственных сертификатов SSL необходимо полученные сертификаты/ключи скопировать на сервер с платформой.

 Вам потребуется зарегистрированное доменное имя и публичный IP адрес

Например:

  • создать директорию /etc/ansible-iot/ssl
  • создать директорию с именем домена /etc/ansible-iot/ssl/example.com, где example.com доменное имя Вашего сервера. В данную директорию скопировать фалы сертификатов/ключей
  • при наличии dhparams.pem скопировать в /etc/ansible-iot/ssl
  • создать файл /etc/ansible-iot/ssl/options-ssl-nginx.conf с следующим содержимым:
Содержимое конфигурационного файла options-ssl-nginx.conf
ssl_session_cache shared:le_nginx_SSL:10m;
ssl_session_timeout 1440m;
ssl_session_tickets off;

#ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;

ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";

Далее необходимо отредактировать содержимое конфигурационного файла Ansible templates/docker-compose.yml.j2,  в частности указать маппинг для контейнера docker с web/Nginx:

Содержимое конфигурационного файла templates/docker-compose.yml.j2
...
- "/etc/ansible-iot/ssl/example.com/fullchain.pem:/etc/ansible-iot/ssl/example.com/fullchain.pem"
- "/etc/ansible-iot/ssl/example.com/privkey.pem:/etc/ansible-iot/ssl/example.com/privkey.pem"
- "/etc/ansible-iot/ssl/options-ssl-nginx.conf:/etc/ansible-iot/ssl/options-ssl-nginx.conf"
- "/etc/ansible-iot/ssl/ssl-dhparams.pem:/etc/ansible-iot/ssl/ssl-dhparams.pem"
...

 Необходимо заменить example.com на доменное имя Вашего сервера

Например,  как должен получиться итоговый блок конфигурации (указана только часть, отвечающая за web/Nginx):

Содержимое конфигурационного файла templates/docker-compose.yml.j2
...
{% if not without_web %}
  web:
    image: "${REGISTRY_IOT}/iot-double-web:${IOT_RELEASE}"
    container_name: iot-double-web${CONTAINER_NAME_SUFFIX}
{% if not without_core %}
    depends_on:
      core:
        condition: service_started
    links:
      - core
{% endif %}
    environment:
      - ENABLE_CERTBOT=${WEB_ENABLE_CERTBOT}
      - SERVER_NAME=${WEB_SERVER_NAME}
      - CERTBOT_EMAIL=${WEB_CERTBOT_EMAIL}
      - HTTPS_PORT=${WEB_HTTPS_PORT}
      - TZ=${TIMEZONE}
    volumes:
      - "${INSTALL_DIR}/web/etc/nginx/conf.d:/etc/nginx/conf.d"
      - "${INSTALL_DIR}/web/well-known:/usr/share/eltex-sc-web/www/.well-known"
{% if web_enable_certbot %}
      - "${INSTALL_DIR}/web/etc/letsencrypt:/etc/letsencrypt"
      - "${INSTALL_DIR}/web/var/log/letsencrypt:/var/log/letsencrypt"
{% endif %}
      - "${INSTALL_DIR}/ssl/certs/eltex-sc-web.crt:/etc/ssl/certs/eltex-sc-web.crt"
      - "${INSTALL_DIR}/ssl/private/eltex-sc-web.key:/etc/ssl/private/eltex-sc-web.key"
      - "/etc/ansible-iot/ssl/example.com/fullchain.pem:/etc/ansible-iot/ssl/example.com/fullchain.pem"
      - "/etc/ansible-iot/ssl/example.com/privkey.pem:/etc/ansible-iot/ssl/example.com/privkey.pem"
      - "/etc/ansible-iot/ssl/options-ssl-nginx.conf:/etc/ansible-iot/ssl/options-ssl-nginx.conf"
      - "/etc/ansible-iot/ssl/ssl-dhparams.pem:/etc/ansible-iot/ssl/ssl-dhparams.pem"
{% if without_core %}
      - "${INSTALL_DIR}/web/etc/dnsmasq.d:/etc/dnsmasq.d"
    extra_hosts:
      - core:host-gateway
{% endif %}
    ports:
      - "${WEB_HTTP_PORT}:${WEB_HTTP_PORT}"
      - "${WEB_HTTPS_PORT}:${WEB_HTTPS_PORT}"
    restart: unless-stopped
{% endif %}

networks:
  default:
    external:
      name: iot${NETWORK_NAME_SUFFIX}

Далее необходимо отредактировать содержимое конфигурационного файла Ansible templates/eltex-sc-web.j2,  в частности указать путь до сертификатов/ключей SSL для web/Nginx (путь до SSL сертификатов/ключей по умолчанию закомментировать или удалить):

Содержимое конфигурационного файла templates/eltex-sc-web.j2
...
#ssl_certificate /etc/ssl/certs/eltex-sc-web.crt;
#ssl_certificate_key /etc/ssl/private/eltex-sc-web.key;
ssl_certificate /etc/ansible-iot/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/ansible-iot/ssl/example.com/privkey.pem;
include /etc/ansible-iot/ssl/options-ssl-nginx.conf;
ssl_dhparam /etc/ansible-iot/ssl/ssl-dhparams.pem;
...

 Необходимо заменить example.com на доменное имя Вашего сервера

Для применения настроек необходимо выполнить перезапуск контейнеров с микросервисами:

ansible-playbook install.yml

Для выполнения команды ansible-playbook необходимо находиться или указать путь до сценариев ansible для развертывания ядра платформы Eltex-SC.




  • Нет меток