Проверка валидности сертификатов#

В случае необходимости проверки валидности сертификатов можно воспользоваться Jenkins job certs_validation, которая должна быть создана на этапе установки компонента SMBX. Подробнее создание Jenkins job описано в документе Руководство по установке, раздел Создание Jenkins Job для автоматической установки. Проверка валидности сертификатов осуществляется на hosts, которые указаны в файле inventory в блоке [artemis].

Предусловия#

Предварительно необходимо добавить в конфигурационный файл vars.yml блок настроек:

validate_certs:
  ssl_path: /path/to/ssl # путь до директории с сертификатами
  y_exp_days: 45 # Проверяет, если сертификат имеет срок годности меньше, то в email-отчете строка с этим сертификатом будет окрашена в желтый цвет. Значение по умолчанию - 45
  r_exp_days: 10 # Проверяет, если сертификат имеет срок годности меньше, то в email-отчете строка с этим сертификатом будет окрашена в красный цвет. Значение по умолчанию - 10. Имеет высший приоритет над y_exp_days в случае указания одинаковых значений

По умолчанию данные параметры заданы в файле Ansible/roles/validate_certs/defaults/main.yml значениями:

validate_certs:
  ssl_path: /opt/Apache/artemis/broker/ssl # путь до директории с сертификатами
  y_exp_days: 45 # Проверяет, если сертификат имеет срок годности меньше, то в email-отчете строка с этим сертификатом будет окрашена в желтый цвет. Значение по умолчанию - 45
  r_exp_days: 10 # Проверяет, если сертификат имеет срок годности меньше, то в email-отчете строка с этим сертификатом будет окрашена в красный цвет. Значение по умолчанию - 10. Имеет высший приоритет над y_exp_days в случае указания одинаковых значений

Работа с Jenkins job#

Наименование задания Jenkins: certs_validation. Запустить данную Jenkins Job с ниже перечисленными параметрами.

Параметры запуска:

  • job_config_renew — параметр, использующийся для перенастройки задания Jenkins. Его необходимо включить, если был добавлен новый параметр schedule, либо если он был удален. При запуске с указанными параметрами job_config_renew и schedule будет осуществляться запуск Jenkins job по расписанию, указанному в schedule, столько раз, сколько разных inventory указано в параметре inventory. При запуск Jenkins job с пустым schedule и заполненным job_config_renew будет произведена очистка заданий Cron. По умолчанию job_config_renew не указывается;

  • inventory — выбрать inventory, для которого необходимо произвести проверку валидности сертификатов. Файл vars.yml должен быть заполнен в данном inventory;

  • emailTo — список адресов электронной почты для отправки технических писем с логами;

  • schedule — время автоматического запуска Jenkins job в формате Cron. Например, 15 14 1 * *. Данный пример будет запускать Jenkins job 1 числа каждого месяца в 14 часов 15 минут для всех inventory из параметра inventory;

  • custom_vault_password — указывается, если нужен ручной ввод пароля для Ansible Vault;

  • jenkins_slave — выбор Jenkins slave;

  • ansible_branch — ветка скриптов развертывания (в настройках Jenkins Job указать ${ansible_branch});

  • ansible_version — версия используемого Jenkins tool для Ansible, например ansible29;

  • vault_cred — ID credential типа secret file со строкой для расшифровки паролей (ansible vault) (можно указывать несколько через запятую). При задании параметра secman_url - полный путь в HashiCorp Vault до пароля, например {ID credential }|/<путь до>/vault:{password_1},{ID credential _2}|/<путь до>/vault:{password_2} (в качестве пароля можно использовать не строку, а файл в base64 формате с ключом секрета, заканчивающимся на Base64, например myVaultBase64);

  • server_ssh_cred — ID credential типа ssh key для подключения к серверам. При задании параметра secman_url - полный путь в HashiCorp Vault, например {ID credential типа vault app role для получение секретов из HashiCorp Vault}|/<путь до>/ssh:{юзер},{ключ},{passphrase} (в качестве ключа можно использовать не строку, а файл в base64 формате с ключом секрета, заканчивающимся на Base64, например myPrivateKeyBase64);

  • secman_url — URL для подключения к HashiCorp Vault;

  • ssl_verify — проверяем, являются ли сертификаты HashiCorp Vault/Nexus доверенными;

  • inventories_repo — репозиторий с inventory (ssh://);

  • inventories_branch — ветка репозитория;

  • inventories_path — путь до inventories от корня репозитория.

После заполнения всех параметров необходимо собрать Jenkins job.

Проверка валидности сертификатов осуществляется на hosts, которые указаны в файле inventory в блоке [artemis].

В результате после успешной сборки Jenkins job certs_validation на e-mail, указанный в параметре emailTo, придет письмо с таблицей по проверенным сертификатам, во вложении будет отчет в виде csv-файла.

Желтым в таблице будут помечены те сертификаты, по которым срок годности истекает менее, чем через y_exp_days дней, указанных в файле vars.yml, красным — менее, чем r_exp_days дней.