4.2 KiB
La gestion d'un certificat
La balise certificate
La gestion des certificats se fait dans un conteneur de service.
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 :
<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 :
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 :
<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 :
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 :
<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 :
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 :
<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 :
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