```{index} nginx, сертификаты ``` # nginx --- распространение сертификатов **Плейбук**: `playbooks/maintenance/nginx/nginx_update_certs.yml` **Роль**: `roles/nginx_update_certs_BETA` Команда для запуска: ```bash ansible-playbook -i inv/production \ --vault-id keys@~/.secrets/keys \ playbook/maintenance/nginx/update_certs_BETA.yml ``` ## Добавить новый сайт: ```bash vim inv/production/group_vars/PROD_NginxFront.yml ``` Добавляем fqdn сайта в одну из двух переменных: - `inv_nginx_srv_sites` --- список всех актуальных вебсайтов; - `inv_nginx_additional_certs` --- список доп. сертификатов, например, api.appindex.ru. Для генерации нового сертификата есть helper script `roles/nginx_update_certs_BETA/files/prod/generate_new_cert.sh`, подробнее: {ref}`generate_new_cert_script` ## Описание Сами сертификаты хранятся в `roles/nginx_update_certs_BETA/files/`. Закрытые / частные / приватные ключи зашифрованы с помощью `ansible-vault` (расшифровываются при выполнении плейбука). Пароль для расшифровки хранится в `~/.secrets/keys` **(вне репозитория git!)**. Команда для шифрования нового ключа: ```bash ansible-vault encrypt \ --vault-id keys@~/.secrets/keys \ rustories.appworks.ru.key ``` Просмотреть зашифрованный файл ключа: ``` ansible-vault view \ --vault-id keys@~/.secrets/keys \ rustories.appworks.ru.key ```