dataset/doc/certificates.md

69 lines
2.1 KiB
Markdown
Raw Normal View History

2022-03-08 19:42:28 +01:00
# 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>
```