Vorwort: Es ist für Docker unsicher, Port 2375 direkt zu öffnen. Andere können alles tun, solange sie sich damit verbinden. Im Folgenden erfahren Sie, wie Sie die TLS- und CA-Authentifizierung für Docker aktivieren und es mithilfe von Jenkins und Portainer verbinden. 1. Zertifikat generierenÜberprüfen Sie den Server-Hostnamen Hostname Docker-TLS-CA.sh automatisch generieren # !/bin/bash # TLS- und CA-Zertifikate mit einem Klick generieren# Erstellen: 2021-08-25 # Aktualisierung : 25.08.2021 # @Autor: wuduoqiang # Server-Hostname SERVER="6c377ffb8e86" # Passwort PASSWORD="2cx&BUjsV4u%3TW9" # Land COUNTRY="CN" # Provinz STAAT="Provinz Hainan" # Stadt CITY="Haikou" # Organisationsname ORGANIZATION="Xiao Qiangzi Company" # Organisationseinheit ORGANIZATIONAL_UNIT="Kleine Qiangzi-Einheit" # E-Mail EMAIL="[email protected]" # CA-Schlüssel generieren openssl genrsa -aes256 -passout pass:$PASSWORD -out ca-key.pem 2048 # CA-Zertifikat generieren openssl req -new -x509 -passin "pass:$PASSWORD" -days 3650 -key ca-key.pem -sha256 -out ca-cert.pem -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORGANIZATIONAL_UNIT/CN=$SERVER/emailAddress=$EMAIL" # Serverschlüssel generieren openssl genrsa -out server-key.pem 2048 # Erstellen Sie eine Anforderungsdatei zum Signieren des Serverzertifikats openssl req -subj "/CN=$SERVER" -new -key server-key.pem -out server-req.csr # Serverzertifikat generieren openssl x509 -req -days 3650 -in server-req.csr -CA ca-cert.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out server-cert.pem # Client-Schlüssel generieren openssl genrsa -out client-key.pem 2048 # Erstellen Sie eine Client-Zertifikat-Signatur-Anforderungsdatei openssl req -subj '/CN=client' -new -key client-key.pem -out client-req.csr # Client-Zertifikat generieren sh -c 'echo "extendedKeyUsage=clientAuth" >> extfile.cnf' openssl x509 -req -days 3650 -in client-req.csr -CA ca-cert.pem -CAkey ca-key.pem -passin "pass:$PASSWORT" -CAcreateserial -out client-cert.pem -extfile extfile.cnf # Schlüsselberechtigungen ändern chmod 0400 ca-key.pem server-key.pem client-key.pem # Zertifikatsberechtigungen ändern chmod 0444 ca-cert.pem server-cert.pem client-cert.pem # Unnötige Dateien löschen# rm ca-cert.srl client-req.csr server-req.csr extfile.cnf Dateibeschreibung ca.srl: Datensatz der Seriennummer des CA-Zertifikats fileca-cert.pem: CA-Zertifikatca-key.pem: CA-Schlüsselserver-key.pem: Server-Schlüsselserver-req.csr: Anforderung zur Signierung des Server-Zertifikats fileserver-cert.pem: Server-Zertifikatclient-key.pem: Client-Schlüsselextfile.cnf: Konfigurationsdatei der Client-Zertifikatserweiterung fileclient-req.csr: Anforderung zur Signierung des Client-Zertifikats fileclient-cert.pem: Client-Zertifikat Befehlsanalyse # -subj /C=$LAND/ST=$BUNDESSTAAT/L=$STADT/O=$ORGANISATION/OU=$ORGANIZATIONAL_UNIT/CN=$SERVER/emailAddress=$EMAIL -subj sind die Informationen des angegebenen Zertifikatsantragstellers. C ist der Ländername. ST ist der Name des Staates oder der Provinz L steht für Locality Name (Ortsname) O steht für den Organisationsnamen OU ist der Name der Organisationseinheit CN ist der gebräuchliche Name emailAddress ist die E-Mail-Adresse 2. Aktivieren Sie die FernbedienungAktivieren Sie die Remote-Zugriffs-API von Docker # Bearbeiten Sie die Datei vim /etc/systemd/system/docker.service # Ändern Sie den Inhalt und achten Sie auf den angegebenen Speicherort des Zertifikats ExecStart=/usr/bin/dockerd \ --tlsverify \ --tlscacert=/etc/docker/ca-cert.pem \ --tlscert=/etc/docker/server-cert.pem \ --tlskey=/etc/docker/server-key.pem \ -H unix:///var/run/docker.sock \ -H tcp://0.0.0.0:2375 # Starten Sie den Dienst neu systemctl daemon-reload && systemctl restart docker Wenn Sie den Schlüssel und das Zertifikat nicht haben, können Sie keine Verbindung herstellen Docker -H 192.168.8.248:2375 Bilder Ohne Schlüssel und Zertifikat ist keine Verbindung über den Hostnamen möglich. docker -H 6c377ffb8e86:2375 Bilder Darüber hinaus können Schlüssel und Zertifikat nicht ohne Verwendung des Hostnamens verbunden werden curl https://192.168.8.248:2375/info --cert ./client-cert.pem --key ./client-key.pem --cacert ./ca-cert.pem Fügen Sie den Schlüssel und das Zertifikat hinzu und greifen Sie über den Hostnamen darauf zu curl https://6c377ffb8e86:2375/info --cert ./client-cert.pem --key ./client-key.pem --cacert ./ca-cert.pem 3. Remote-Verbindung3.1 Jenkins-VerbindungAnmeldeinformationen hinzufügen Füllen Sie die Informationen aus Testen Sie die Verbindung. Beachten Sie, dass hier der Hostname verwendet werden sollte Wenn Jenkins über Docker installiert wird, müssen Sie den Hostnamen zuordnen Version: '3' Leistungen: Jenkins: Neustart: immer Bild: 192.168.8.247/xiaoqiangzai/jenkins:latest Containername: Jenkins Häfen: - „8888:8080“ - „50000:50000“ Bände: - ./data/jenkins_home:/var/jenkins_home - ./data/war/jenkins.war:/usr/share/jenkins/jenkins.war Umfeld: JENKINS_OPTS: "--prefix=/jenkins" zusätzliche_hosts: - „6c377ffb8e86:192.168.8.248“ 3.2 Portainer-VerbindungWählen Sie den Client-Schlüssel und das Zertifikat sowie das CA-Zertifikat aus Verbindung OK Wenn Portainer mit Docker installiert ist, müssen Sie den Hostnamen zuordnen Version: '3' Leistungen: Träger: Neustart: immer Bild: portainer/portainer-ce:latest Containername: Portainer privilegiert: wahr Häfen: - „9000:9000“ Bände: - ./Daten/Daten:/Daten - ./data/public:/öffentlich zusätzliche_hosts: - „6c377ffb8e86:192.168.8.248“ Dies ist das Ende dieses Artikels über die Schritte zum Aktivieren der TLS- und CA-Authentifizierung in Docker. Weitere Informationen zum Aktivieren der TLS- und CA-Authentifizierung in Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Detaillierte Beschreibung des HTML-Meta-Viewport-Attributs
>>: Tägliches automatisches Backup der MySQL-Datenbank mit mysqldump in Centos7 schreiben
Die Sicherheitsprobleme, die bei der Frontend-Ent...
Was ist ein Dateisystem Wir wissen, dass Speicher...
Um das Kursdesign zu realisieren, habe ich kürzli...
Ich glaube, dass viele Programmierer mit MySQL ve...
Lösen Sie das Problem der verstümmelten chinesisc...
CentOS 8 ist jetzt verfügbar! Die Versionen von C...
Inhaltsverzeichnis 1. Problematische SQL-Anweisun...
Ich habe gelernt, wie man https bekommt. Kürzlich...
Inhaltsverzeichnis 1. Geben Sie zuerst das Konfig...
Inhaltsverzeichnis Überblick Was ist die O-Notati...
Herausgeber: In diesem Artikel wird die Rolle erö...
Ich habe einige Werte grob aufgelistet, um die Di...
Negative Distanz bezieht sich auf Empathie. Vorwo...
Vorwort Die Dateiberechtigungsverwaltung von Linu...
Aufschlag: # chkconfig --list Alle Systemdienste ...