serveurs:installation:db-srv:docker-api

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
serveurs:installation:db-srv:docker-api [2023/05/28 21:07] – [Utiliser TLS (HTTPS) pour sécuriser l'API (daemon Docker)] jpmilcentserveurs:installation:db-srv:docker-api [2023/08/02 13:33] (Version actuelle) – [Utiliser TLS (HTTPS) pour sécuriser l'API (daemon Docker)] jpmilcent
Ligne 1: Ligne 1:
-====== Activer l'API Docker sur l'instance "db-srv" ======+====== Activer l'API Docker sur une instance ======
  
 +Ici c'est l'exemple de l'instance DB-SRV sur le SINP PACA (silene.eu) qui est donné.
 ===== Rendre persistante l'activation ===== ===== Rendre persistante l'activation =====
   * Afin d'éviter que les modifications effectuées dans le fichier ///lib/systemd/system/docker.service// soient écrasées à chaque mise à jour de Docker, vous devez ajouter un fichier qui écrasera les valeurs par défaut.   * Afin d'éviter que les modifications effectuées dans le fichier ///lib/systemd/system/docker.service// soient écrasées à chaque mise à jour de Docker, vous devez ajouter un fichier qui écrasera les valeurs par défaut.
Ligne 27: Ligne 28:
     * Sécuriser le dossier : ''chmod 600 /etc/docker/ssl/''     * Sécuriser le dossier : ''chmod 600 /etc/docker/ssl/''
   * Générer les différents certificats en suivant [[https://docs.docker.com/engine/security/protect-access/#use-tls-https-to-protect-the-docker-daemon-socket|la documentation de Docker]] :    * Générer les différents certificats en suivant [[https://docs.docker.com/engine/security/protect-access/#use-tls-https-to-protect-the-docker-daemon-socket|la documentation de Docker]] : 
 +    * Se placer dans le dossier qui hébergera les certificats : ''cd /etc/docker/ssl/''
     * ''openssl genrsa -aes256 -out ca-key.pem 4096''     * ''openssl genrsa -aes256 -out ca-key.pem 4096''
       * Créer le mot de passe du certificat et le stocker dans Keepass       * Créer le mot de passe du certificat et le stocker dans Keepass
Ligne 39: Ligne 41:
 Email Address []: adminsys@silene.eu Email Address []: adminsys@silene.eu
 </code> </code>
-    * ''openssl genrsa -out server-key.pem 4096'' +    * ''%%openssl genrsa -out server-key.pem 4096%%'' 
-    * ''openssl req -subj "/CN=db-srv.silene.eu" -sha256 -new -key server-key.pem -out server.csr'' +    * ''%%openssl req -subj "/CN=db-srv.silene.eu" -sha256 -new -key server-key.pem -out server.csr%%'' 
-    * ''echo subjectAltName = DNS:db-srv.silene.eu,IP:10.0.1.20,IP:127.0.0.1 >> extfile.cnf'' +    * ''%%echo subjectAltName = DNS:db-srv.silene.eu,IP:10.0.1.20,IP:127.0.0.1 > extfile.cnf%%'' 
-    * ''echo extendedKeyUsage = serverAuth >> extfile.cnf'' +    * ''%%echo extendedKeyUsage = serverAuth >> extfile.cnf%%'' 
-    * ''openssl x509 -req -days 1825 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem  -CAcreateserial -out server-cert.pem -extfile extfile.cnf'' +    * ''%%openssl x509 -req -days 1825 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem  -CAcreateserial -out server-cert.pem -extfile extfile.cnf%%'' 
-    * ''openssl genrsa -out key.pem 4096'' +    * ''%%openssl genrsa -out key.pem 4096%%'' 
-    * ''openssl req -subj '/CN=client' -new -key key.pem -out client.csr'' +    * ''%%openssl req -subj '/CN=client' -new -key key.pem -out client.csr%%'' 
-    * ''echo extendedKeyUsage = clientAuth > extfile-client.cnf'' +    * ''%%echo extendedKeyUsage = clientAuth > extfile-client.cnf%%'' 
-    * ''openssl x509 -req -days 1825 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile-client.cnf'' +    * ''%%openssl x509 -req -days 1825 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile-client.cnf%%'' 
-    * ''chmod -v 0400 ca-key.pem key.pem server-key.pem'' +    * ''%%chmod -v 0400 ca-key.pem key.pem server-key.pem%%'' 
-    * ''chmod -v 0444 ca.pem server-cert.pem cert.pem'' +    * ''%%chmod -v 0444 ca.pem server-cert.pem cert.pem%%''
-  * Tester la sécurisation : ''%%docker -H 10.0.1.20:2376 --tls --tlscert=/etc/docker/ssl/client-manager-portainer-cert.pem --tlskey=/etc/docker/ssl/client-manager-portainer-key.pem --tlscacert=/etc/docker/ssl/ca.pem ps -a%%''+
   * Renommer les fichiers client :    * Renommer les fichiers client : 
     * ''mv key.pem client-key.pem''     * ''mv key.pem client-key.pem''
     * ''mv cert.pem client-cert.pem''     * ''mv cert.pem client-cert.pem''
 +  * Modifier le fichier daemon.json : ''vi /etc/docker/daemon.json'' <code javascript>
 +{
 +    "tls": true,
 +    "tlsverify": true,
 +    "tlscacert": "/etc/docker/ssl/ca.pem",
 +    "tlscert": "/etc/docker/ssl/server-cert.pem",
 +    "tlskey": "/etc/docker/ssl/server-key.pem"
 +}
 +</code>
   * Redémarrer le service Docker : ''systemctl stop docker.service;systemctl start docker.service''   * Redémarrer le service Docker : ''systemctl stop docker.service;systemctl start docker.service''
 +  * Tester la sécurisation : ''%%docker -H 10.0.1.20:2376 --tls --tlscert=/etc/docker/ssl/client-cert.pem --tlskey=/etc/docker/ssl/client-key.pem --tlscacert=/etc/docker/ssl/ca.pem ps -a%%''
   * Créer un dossier sur admin pour récupérer en local les fichiers client : ''mkdir /home/admin/ca;cp /etc/docker/ssl/{ca.pem,client-*} /home/admin/ca/;chown admin: -R /home/admin/ca''   * Créer un dossier sur admin pour récupérer en local les fichiers client : ''mkdir /home/admin/ca;cp /etc/docker/ssl/{ca.pem,client-*} /home/admin/ca/;chown admin: -R /home/admin/ca''
-  * Depuis votre poste local : ''scp admin@web-paca-sinp:~/ca/* ~/Documents/Keepass/docker-ca/db-srv/'' +  * Depuis votre poste local : ''scp admin@db-paca-sinp:~/ca/* ~/Documents/Keepass/docker-ca/db-srv/'' 
-  * Supprimer sur le serveur le dossier ~/ca : ''rm -fR /home/admin/ca''+  * Supprimer sur le serveur le dossier //~/ca/// : ''rm -fR /home/admin/ca''
   * Via l'interface de Portainer créer un nouvel environnement :    * Via l'interface de Portainer créer un nouvel environnement : 
     * Name : db-srv     * Name : db-srv
Ligne 66: Ligne 77:
     * TLS certificate : uploader le fichier //client-cert.pem//     * TLS certificate : uploader le fichier //client-cert.pem//
     * TLS key : uploader le fichier //client-key.pem//     * TLS key : uploader le fichier //client-key.pem//
 +  * Stocker les certificats sur le serveur hébergeant le Docker de Portainer (bkp-srv) : 
 +    * Créer un dossier qui hébergera les certificats : ''mkdir -p /etc/docker/certs.d/db-srv''
 +    * Modifier les droits : ''chmod 750 -R /etc/docker/certs.d/''
 +    * Créer un dossier sur admin pour récupérer sur le serveur (bkp-srv) les fichiers client : ''mkdir /home/admin/ca;chown admin: -R /home/admin/ca''
 +    * Depuis le poste local, uploader les fichiers clients : ''scp ~/Documents/Keepass/docker-ca/db-srv/* admin@bkp-paca-sinp:~/ca/''
 +    * Déplacer les fichiers clients sur le serveur bkp-srv : ''mv /home/admin/ca/* /etc/docker/certs.d/db-srv/''
 +    * Donner les bons droits aux fichiers clients : ''chown root: /etc/docker/certs.d/db-srv/*''
 +    * Supprimer le dossier //ca/// sur le serveur bkp-srv : ''rm -fR /home/admin/ca''
 +    * Modifier les droits : ''chmod 640 /etc/docker/certs.d/db-srv/*''
  • serveurs/installation/db-srv/docker-api.1685308053.txt.gz
  • Dernière modification : 2023/05/28 21:07
  • de jpmilcent