# 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 /etc/pki/tls/certs/squid.crt ``` 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 certificate /etc/pki/tls/certs/squid.crt /etc/pki/tls/private/squid.key /etc/pki/ca-trust/source/anchors/ca_squid.crt ``` 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 /etc/pki/tls/certs/squid.crt ``` 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 /etc/pki/tls/certs/squid.crt squid squid ``` 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 ```