Jooho.generate-self-signed-cert
Rôle Ansible : Générer un certificat auto-signé
Ce rôle aide à générer un certificat auto-signé. Il créera les combinaisons suivantes :
Cas 1 :
- CA RACINE
- CA Intermédiaire
- Certificat Serveur (avec SAN/sans SAN)
Cas 2 :
- CA Racine
- Certificat Serveur (avec SAN/sans SAN)
Exigences
yum
Variables du Rôle
| Nom | Valeur par défaut | Requis | Description | 
|---|---|---|---|
| cert_base_dir | /root/cert_base | non | Répertoire de base par défaut pour les certificats | 
| root_cert_bit | 4096 | non | Taille par défaut des bits pour le certificat racine | 
| intermediate_cert_bit | 4096 | non | Taille par défaut des bits pour le certificat intermédiaire | 
| server_cert_bit | 2048 | non | Taille par défaut des bits pour le certificat serveur | 
| serial_number | 1000 | non | Info commune du certificat - Numéro de série | 
| countryName | CA | non | Info commune du certificat - Nom du pays | 
| stateOrProvinceName | ON | non | Info commune du certificat - Nom de la province | 
| localityName | MILTON | non | Info commune du certificat - Nom de la localité | 
| organizationName | RED HAT | non | Info commune du certificat - Nom de l'organisation | 
| organizationalUnitName | SCE | non | Info commune du certificat - Nom de l'unité organisationnelle | 
| emailAddress | test@test.com | non | Info commune du certificat - Adresse e-mail | 
| root_commonName | CA Racine | non | Info sur le certificat racine - Nom CN | 
| intermediate_commonName | CA Intermédiaire | non | Info sur le certificat intermédiaire - Nom CN | 
| cert_commonName | lb.example.com | non | Info sur le certificat serveur - Nom CN | 
| use_intermediate_cert | oui | non | Si non, il n'émet pas de certificat intermédiaire | 
| use_san | oui | non | Si oui, les informations SAN seront ajoutées avec le nom CN | 
| san_dns | non | Ajouter plusieurs listes DNS SAN | |
| san_ip | non | Ajouter plusieurs listes IP SAN | |
| overwrite_server_cert | oui | non | Supprimer le répertoire du certificat serveur basé sur le nom CN | 
| clean_all | non | non | Recréer tous les certificats | 
Dépendances
Aucune
Exemple de Playbook
- nom: Exemple de Playbook
  hôtes: localhost
  gather_facts: faux
   rôles:
      - { rôle: Jooho.generate-self-signed-cert }
Exemples de Variables
Certificat Wildcard :
cert_commonName: *.cloudapps.example.com
LISTE DNS SAN :
san_dns:
 - { index: 1, dns: lb.example.com}
 - { index: 2, dns: master-cluster.example.com}
LISTE IP SAN :
san_ip:
 - { index: 1, ip: 192.168.200.205}
REMARQUE
Les autorisations pour la clé privée et le certificat doivent être 400/444 mais ce rôle Ansible utilise 777/777 car ces fichiers seront copiés ailleurs. Après les avoir copiés, il est recommandé de changer les autorisations.
Commandes Utiles
openssl x509 -in {{cert_base_dir}}/{{server_cert_commonName}}/{{server_cert_commonName}}.cert.pem -text
openssl x509 -in /root/cert_base/lb.example.com/lb.example.com.cert.pem -text
Documentation de Référence
Licence
BSD/MIT
Informations sur l'Auteur
Ce rôle a été créé en 2017 par Jooho Lee.
