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
Ich bin vor kurzem auf ein Problem gestoßen. Die ...
Ich stehe seit einiger Zeit mit MGR in Kontakt. M...
1. Beim Öffnen der Webseite wird die Meldung „503...
Vorwort: Der Linux-Host ist relativ einfach zu ha...
Vorwort Beim Teilen einer Seite hoffen Sie, durch...
Apollo Open Source-Adresse: https://github.com/ct...
CSS: 1. <link type="text/css" href=&q...
Installationsumgebung: CentOS7 64-Bit, MySQL5.7 1...
In diesem Artikel finden Sie den spezifischen Cod...
Wenn Sie unter Linux eine Anwendung herunterladen...
Es ist mühsam, die db2-Datenbank direkt auf dem H...
Inhaltsverzeichnis 1. Allgemeine Funktionsklassif...
1. Einleitung Vor ein paar Tagen fragte mich ein ...
Vom Backend zum Frontend: was für eine Tragödie. A...
Moderne Browser erlauben nicht mehr, JavaScript i...