Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
technique:docker:admin:socket-certs [2020/10/14 16:08] qduchemitechnique:docker:admin:socket-certs [2024/06/01 11:30] (Version actuelle) qduchemi
Ligne 4: Ligne 4:
 ## Préambule ## Préambule
  
-Pour certaines opérations, il peut être utile de pouvoir lancer des commandes Docker à distance. Par exemple, les [[technique:adminsys:graph_services|graphes des services]] sont construits de manière centralisée en récupérant des informations sur les conteneurs qui tournent, à distance. Une chaîne d'intégration aurait besoin de lancer des commandes à distance.+Pour certaines opérations, il peut être utile de pouvoir lancer des commandes Docker à distance. Par exemple, les [[technique:graph_services|graphes des services]] sont construits de manière centralisée en récupérant des informations sur les conteneurs qui tournent, à distance. Une chaîne d'intégration aurait besoin de lancer des commandes à distance.
  
 Pour ce faire, l'idée est d'exposer le socket Docker (qui permet d'effectuer toutes les opérations possibles avec Docker) à l'extérieur.  Pour ce faire, l'idée est d'exposer le socket Docker (qui permet d'effectuer toutes les opérations possibles avec Docker) à l'extérieur. 
Ligne 20: Ligne 20:
 Pour ce faire, il faut créer une autorité de certification (CA) côté serveur et générer l'ensemble de ces éléments. Pour ce faire, il faut créer une autorité de certification (CA) côté serveur et générer l'ensemble de ces éléments.
  
-<bootnote important>Par conventions, on crée ces éléments dans `/DATA/docker/remote`, ils appartiendront à `root` avec le groupe `docker`, et seront en `u=rw,g=r`.</bootnote>+<bootnote important>On crée ces éléments dans `/DATA/docker/remote`, ils appartiendront à `root` avec le groupe `docker`, et seront en `u=rw,g=r`.</bootnote>
  
 <bootnote>On a fixé arbitrairement la durée de vie des certificats à un an. Il conviendra donc de les renouveler et de les mettre à jour sur les serveurs **et** les clients concernés tous les ans.</bootnote> <bootnote>On a fixé arbitrairement la durée de vie des certificats à un an. Il conviendra donc de les renouveler et de les mettre à jour sur les serveurs **et** les clients concernés tous les ans.</bootnote>
Ligne 27: Ligne 27:
  
 Une bonne pratique est de ne pas ré-utiliser les certificats et clés clientes pour des clients multiples : générez autant de certificats que de clients. Une bonne pratique est de ne pas ré-utiliser les certificats et clés clientes pour des clients multiples : générez autant de certificats que de clients.
- 
 ## Créer une clé privée pour la CA ## Créer une clé privée pour la CA
 +
 +<bootnote warning>Cette opération n'est qu'à faire une fois, pas à chaque renouvellement !</bootnote>
  
 C'est la clé la plus importante, puisqu'elle permet de créer les certificats. Si elle est compromise, n'importe qui pourrait créer un certificat client illégitime. C'est la clé la plus importante, puisqu'elle permet de créer les certificats. Si elle est compromise, n'importe qui pourrait créer un certificat client illégitime.
Ligne 39: Ligne 40:
 ``` ```
  
-Générer la clé avec [pass](https://gitlab.utc.fr/picasoft/interne/pass), avec la nomenclature `Tech/Keys/<serveur>/ca-key.pem`.+Générer et stocker la passphrase dans [[asso:tuto:vaultwarden|Vaultwarden]], avec la nomenclature `Tech/Keys/<serveur>/ca-key.pem`.
  
 ## Créer ou renouveller la CA ## Créer ou renouveller la CA
Ligne 141: Ligne 142:
 ## Configurer le démon Docker ## Configurer le démon Docker
  
-Vérifier que le démon Docker est bien configuré pour [[démarrer avec TLS et utiliser le certificat généré|technique:docker:admin:config#drop_in]].+Vérifier que le démon Docker est bien configuré pour [[technique:docker:admin:config#drop_in|démarrer avec TLS et utiliser le certificat généré]].
  
 ## Relancer le démon Docker ## Relancer le démon Docker
Ligne 171: Ligne 172:
  
 ```bash ```bash
-tar -cvf certs.tar ca.pem client+tar -cvf certs.tar ca.pem <client>
 gpg -c certs.tar gpg -c certs.tar
 rm certs.tar rm certs.tar
Ligne 186: Ligne 187:
  
 ```bash ```bash
-gpg /tmp/certs.tar.gpg +cd /tmp 
-tar -xvf /tmp/certs.tar+gpg certs.tar.gpg 
 +tar -xvf certs.tar
 ``` ```
  
Ligne 193: Ligne 195:
  
 ```bash ```bash
-docker --tlsverify --tlscacert=/tmp/ca.pem --tlscert=/tmp/<client>/<client>-cert.pem --tlskey=/tmp/<client>/<client>-key.pem -H=<serveur>.picasoft.net:2376 version+docker --tlsverify --tlscacert=/tmp/ca.pem --tlscert=/tmp/client/<client>-cert.pem --tlskey=/tmp/client/<client>-key.pem -H=<serveur>.picasoft.net:2376 version
 ``` ```
  
  • technique/docker/admin/socket-certs.1602684511.txt.gz
  • de qduchemi