69 lines
2.1 KiB
Markdown
69 lines
2.1 KiB
Markdown
|
# 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>
|
||
|
```
|