dataset/doc/certificates.md
2022-03-08 19:42:28 +01:00

2.1 KiB

Généré des certificats via la PKI interne de mini_risotto

Génération des certificates sur le serveur

Création la variable contenant la chain :

<variables>
  <variable name='service_ca_chain' description="CA certificate" hidden='True'/>
</variable>

Création d'une autorité avec le nom "AuthorityName" (le nom est un terme en CamelCase) :

<fill name="get_chain">
  <param name="cn" type="information">server_name</param>
  <param name="authority_cn" type="information">server_name</param>
  <param name="authority_name">AuthorityName</param>
  <target>service_chain</target>
</fill>

La création du fichier de CA est simple, il suffit d'utiliser la variable "service_ca_chain".

Puis il faut créer le certificat avec un template qui contient :

%%get_certificate(%%domain_name_eth0, authority_name="AuthorityName")

Si l'autorité n'est pas gérer par le serveur courant, il faut précicer le nom du serveur responsable de l'autorité :

%%get_certificate(%%domain_name_eth0, authority_cn=%%server, authority_name="AuthorityName")

Enfin, le certificat peut avoir plusieurs nom de domaine, dans ce cas on peut le gérer par exemple en faisant :

%set %%extra_domainnames = []
%for %%idx in %%range(1, %%number_of_interfaces)
  %%extra_domainnames.append(%%getVar('domain_name_eth' + %%str(%%idx)))
%end for
%%get_certificate(%%domain_name_eth0, 'LDAP', extra_domainnames=%%extra_domainnames)

Enfin on peut récupérer la clef privée (attention APRÉS avoir récupérer le certificat) :

%get_private_key(%%domain_name_eth0, %%server)

Comme le certificat, l'autorité peut ne pas être de la responsabilité du serveur courant :

%get_private_key(%%domain_name_eth0, authority_cn=%%server, authority_name="ReverseProxy")

PKI sous Fedora

Création des fichiers pour l'autorité "AuthorityName" pour le service "service" :

<file>/etc/pki/ca-trust/source/anchors/ca_AuthorityName.crt</file>
<file>/etc/pki/tls/certs/service.crt</file>
<file owner="root" group="root" mode="400">/etc/pki/tls/private/service.key</file>