gametize.install-root-cert
Ansible Роль: Установка сертификата корневого ЦС
Эта Ansible роль установит сертификат корневого сертификата ЦС на целевые хосты. Требуется привилегированный доступ для работы.
Объясню простыми словами, зачем это нужно:
- Я создаю сертификат устройства (например, www.example.com). Мой веб-сервер использует его для SSL.
- Другие машины, пытающиеся получить доступ к моему веб-серверу, будут расстроены, потому что SSL сертификат самоподписанный и еще не доверен. Очень неприятно :(
Так для чего же эта Ansible роль?
- Я могу создать закрытый ключ для своей организации и создать самоподписанный сертификат ЦС (Certificate Authority) из этого ключа.
- С помощью этой Ansible роли я могу установить данный сертификат ЦС на клиентские машины.
- Я создаю сертификат устройства (например, www.example.com), подписанный моим сертификатом ЦС (и его закрытым ключом), и использую его для своего веб-сервера.
- Когда мои клиентские машины посещают мой веб-сервер (www.example.com), SSL сертификат должен быть действительным. Ура!
- Если созданный закрытый ключ будет использован неправильно, могут произойти плохие вещи (например, подделка
google.com
). Поэтому храните закрытый ключ организации в безопасности!
Этот плейбук может быть использован на следующих платформах:
- CentOS 6, 7
- Ubuntu 14.04, 16.04
- Mac OS 10.12 (не идемпотентен и протестирован не очень хорошо)
Зависимости
Эта роль требует сертификат корневого ЦС.
Переменные
install_root_cert_pem
Полный путь к сертификату корневого ЦС (.pem
) на локальной машине
Использование
Пример плейбука:
---
- hosts: all
become: yes
vars:
install_root_cert_pem: files/root_ca.pem
roles:
- gametize.install-root-cert
Тесты
Тесты Travis (.travis.yml
) настроены согласно этой статье от geerlingguy.
Тесты Gitlab CI настроены аналогично и могут быть запущены с помощью gitlab-runner. Пример запуска локально:
gitlab-ci-multi-runner exec shell test_centos7
Артефакты, используемые в тестах
Ключи и сертификаты можно сгенерировать с помощью следующих команд. НЕ используйте эти настройки в производственной среде!
$ ### Генерация ключа и сертификата для корневого ЦС
$ openssl genrsa -out root_ca.key 1024
$ openssl req -x509 \
-subj '/C=SG/ST=Singapore/L=Singapore/O=Example Inc/OU=Example Inc Certificate Authority/CN=example.com' \
-new -nodes -key root_ca.key -sha256 -days 1024 \
-out root_ca.pem
$ ### Генерация ключа и сертификата для устройства
$ openssl genrsa -out localhost.key 1024 # генерируем ключ для устройства `localhost.key`
$ openssl req -new \
-subj '/C=SG/ST=Singapore/L=Singapore/O=Example Inc/OU=Example Inc Testing Department/CN=localhost' \
-new -nodes -key localhost.key -sha256 -days 1024 \
-out localhost.csr
$ ### Подписываем сертификат устройства сертификатом корневого ЦС
$ openssl x509 -req \
-in localhost.csr -CA root_ca.pem -CAkey root_ca.key \
-CAcreateserial -out localhost.crt -days 1024 -sha256
$ cat localhost.crt localhost.key > localhost.pem
Лицензия
MIT
Информация об авторе
LIM EnSheng (ensheng@gametize.com)
Установить
ansible-galaxy install gametize.install-root-cert
Лицензия
Unknown
Загрузки
15.7k
Владелец