163 lines
4.2 KiB
Markdown
163 lines
4.2 KiB
Markdown
# La gestion d'un certificat
|
|
|
|
## La balise certificate
|
|
|
|
La gestion des certificats se fait dans un conteneur de [service](README.md).
|
|
|
|
La déclaration du certificat permet d'associer un certificat à un service. Attention, Rougail ne permet que de déclarer ces certificats. Il n'y a pas de gestion du certification dans la bibliothèque.
|
|
|
|
Pour déclarer un certificat :
|
|
|
|
```xml
|
|
<services>
|
|
<service name="squid">
|
|
<certificate private="/etc/pki/tls/private/squid.key" authority="/etc/pki/ca-trust/source/anchors/ca_squid.crt">/etc/pki/tls/certs/squid.crt</certificate>
|
|
</service>
|
|
</services>
|
|
```
|
|
|
|
En YAML :
|
|
|
|
```yml
|
|
services:
|
|
- service:
|
|
- name: squid
|
|
certificate:
|
|
- private: /etc/pki/tls/private/squid.key
|
|
authority: /etc/pki/ca-trust/source/anchors/ca_squid.crt
|
|
text: /etc/pki/tls/certs/squid.crt
|
|
```
|
|
|
|
Les trois informations a donner sont donc :
|
|
|
|
- le nom du certificat
|
|
- le nom de la clef privée
|
|
- le nom de certificat de l'autorité de certification
|
|
|
|
## Les noms de fichiers dynamique
|
|
|
|
Il est possible également de définir le nom des fichiers dans des variables :
|
|
|
|
```xml
|
|
<services>
|
|
<service name="squid">
|
|
<certificate private="private" private_type="variable" authority="authority" authority_type="variable" certificate_type="variable">certificate</certificate>
|
|
</service>
|
|
</services>
|
|
<variables>
|
|
<variable name="certificate" type="filename">
|
|
<value>/etc/pki/tls/certs/squid.crt</value>
|
|
</variable>
|
|
<variable name="private" type="filename">
|
|
<value>/etc/pki/tls/private/squid.key</value>
|
|
</variable>
|
|
<variable name="authority" type="filename">
|
|
<value>/etc/pki/ca-trust/source/anchors/ca_squid.crt</value>
|
|
</variable>
|
|
</variables>
|
|
```
|
|
|
|
En YAML :
|
|
|
|
```yml
|
|
services:
|
|
- service:
|
|
- name: squid
|
|
certificate:
|
|
- private: private
|
|
private_type: variable
|
|
authority: authority
|
|
authority_type: variable
|
|
certificate_type: variable
|
|
text: certificate
|
|
variables:
|
|
- variable:
|
|
- name: certificate
|
|
type: filename
|
|
value:
|
|
- text: /etc/pki/tls/certs/squid.crt
|
|
- name: private
|
|
type: filename
|
|
value:
|
|
- text: /etc/pki/tls/private/squid.key
|
|
- name: authority
|
|
type: filename
|
|
value:
|
|
- text: /etc/pki/ca-trust/source/anchors/ca_squid.crt
|
|
```
|
|
|
|
Attention, les variables doivent être de type "filename".
|
|
|
|
## Le propriétaire de la clef privée
|
|
|
|
Le certificat et le certificat de l'autorité de certification n'ont pas besoin d'être privés.
|
|
Par contre, seul le service qui doit avoir accès à la clef privée.
|
|
|
|
Par défaut seul utilisateur "root" et groupe "root" peuvent y accéder.
|
|
|
|
Il est possible de définir l'utilisateur ou le groupe de la clef privée générée :
|
|
|
|
```xml
|
|
<services>
|
|
<service name="squid">
|
|
<certificate private="/etc/pki/tls/private/squid.key" authority="/etc/pki/ca-trust/source/anchors/ca_squid.crt" owner="squid" group="squid">/etc/pki/tls/certs/squid.crt</certificate>
|
|
</service>
|
|
</services>
|
|
```
|
|
|
|
En YAML :
|
|
|
|
```yml
|
|
services:
|
|
- service:
|
|
- name: squid
|
|
certificate:
|
|
- private: /etc/pki/tls/private/squid.key
|
|
authority: /etc/pki/ca-trust/source/anchors/ca_squid.crt
|
|
owner: squid
|
|
group: squid
|
|
text: /etc/pki/tls/certs/squid.crt
|
|
```
|
|
|
|
L'utilisateur et le groupe peuvent être défini dans une variable :
|
|
|
|
```xml
|
|
<services>
|
|
<service name="squid">
|
|
<certificate private="/etc/pki/tls/private/squid.key" authority="/etc/pki/ca-trust/source/anchors/ca_squid.crt" owner="owner" owner_type="variable" group="group" group_type="variable">/etc/pki/tls/certs/squid.crt</certificate>
|
|
</service>
|
|
<variables>
|
|
<variable name="owner" type="unix_user">
|
|
<value>squid</value>
|
|
</variable>
|
|
<variable name="group" type="unix_user">
|
|
<value>squid</value>
|
|
</variable>
|
|
</services>
|
|
```
|
|
|
|
En YAML :
|
|
|
|
```yml
|
|
services:
|
|
- service:
|
|
- name: squid
|
|
certificate:
|
|
- private: /etc/pki/tls/private/squid.key
|
|
authority: /etc/pki/ca-trust/source/anchors/ca_squid.crt
|
|
owner: owner
|
|
owner_type: variable
|
|
group: group
|
|
group_type: variable
|
|
text: /etc/pki/tls/certs/squid.crt
|
|
variables:
|
|
- variable:
|
|
- name: owner
|
|
type: unix_user
|
|
value:
|
|
- text: squid
|
|
- name: group
|
|
type: unix_user
|
|
value:
|
|
- text: squid
|
|
```
|