Verwendung des Zertifikats und des privaten Schlüssels, die durch die BASIC-Authentifizierung von Docker mit AWS ALB erstellt wurden

zunaechst

Folgen Sie den unteren Schritten.

  1. Erstellen Sie ein BASIC-Zertifikat unter Amazon Linux mit installiertem Docker
  2. Starten Sie ALB mit dem privaten Schlüssel und dem Zertifikat, die von der BASIC-Authentifizierung ausgestellt wurden

Ich würde mich freuen, wenn Sie mich wissen lassen könnten, ob es Fehler in Bezug auf Begriffe oder Anerkennung gibt.

Schritt 1 Erstellen Sie eine BASIC-Zertifizierung

Schreiben Sie zunächst subjectAltName in Zeile 253 von openssl.cnf in die private Adresse der Instanz.

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudoedit /etc/pki/tls/openssl.cnf

Das Folgende wurde nach dem Umschreiben mit `` `cat``` angezeigt.

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ cat -n /etc/pki/tls/openssl.cnf | head -n 255 | tail -n 5
   251
   252  # Include email address in subject alt name: another PKIX recommendation
   253  subjectAltName=IP:xxx.xxx.xxx.xxx
   254  # Copy issuer details
   255  # issuerAltName=issuer:copy

Erstellen Sie danach das folgende Verzeichnis.

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ mkdir certs

Erstellen Sie das obige Zertifikat (domain.crt) und den privaten Schlüssel (domain.key) im obigen Verzeichnis.

Sie werden aufgefordert, Ihre Passphrase einzugeben.



#### **`Sie werden ein zweites Mal dazu aufgefordert. Geben Sie den gleichen Wert ein.`**
```verifying - enter pem pass phrase

 Diese Passphrase wird nicht mehr verwendet.

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ openssl req -newkey rsa:2048 -keyout certs/domain.key -x509 -days 365 -out certs/domain.crt Generating a 2048 bit RSA private key ........................................................................................+++ ........+++ writing new private key to 'certs/domain.key' Enter PEM pass phrase: Verifying - Enter PEM pass phrase:


 Die folgenden Felder sind leer und drücken Sie die Eingabetaste.

Country Name (2 letter code) [XX]: State or Province Name (full name) []: Locality Name (eg, city) [Default City]: Organization Name (eg, company) [Default Company Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []: Email Address []:


 Wechseln Sie im Folgenden in das Verzeichnis certs und löschen Sie die Passphrase.
 Wenn Sie dies nicht tun, startet Docker nicht mit dem folgenden Fehler: `` `msg =" tls: privater Schlüssel konnte nicht analysiert werden "` `` `

#### **`Geben Sie nun die Passphrase ein.`**
```enter pass phrase for domain.key


[ec2-user@ip-xxx-xxx-xxx-xxx certs]$ openssl rsa -in domain.key -out new.key Enter pass phrase for domain.key: writing RSA key


 Kopieren Sie das Zertifikat.

[ec2-user@ip-xxx-xxx-xxx-xxx certs]$ sudo cp certs/domain.crt /etc/pki/ca-trust/source/anchors/xxx.xxx.xxx.xxx.crt


 Starten Sie neu.

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo update-ca-trust enable [ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo update-ca-trust [ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo service docker restart


 Erstelle ein Passwort.
 Geben Sie den Benutzernamen und das Passwort als Benutzername bzw. Passwort ein.

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ docker run --entrypoint htpasswd registry:2.6.2 -Bbn username password > auth/htpasswd


 Starten Sie den Container für die private Registrierung.

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ docker run -d -p 5000:5000
--restart=always
--name registry
-v pwd/auth:/auth
-v pwd/certs:/certs
-e "REGISTRY_AUTH=htpasswd"
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm"
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd"
-e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt"
-e "REGISTRY_HTTP_TLS_KEY=/certs/new.key"
registry:2.6.2


 Stellen Sie sicher, dass Sie sich anmelden können.

[ec2-user@ip-xxx-xxx-xxx-xxx certs]$ docker login https://xxx.xxx.xxx.xxx:5000 Username: testuser Password: WARNING! Your password will be stored unencrypted in /home/ec2-user/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded


## Schritt 2 Starten Sie ALB

 Melden Sie sich mit aws-cli an.
 Die Teile mit dem folgenden Zugriffsschlüssel XXX und dem geheimen Zugriffsschlüssel JJJ sind
 Sie können dies überprüfen, indem Sie auf IAM → Benutzer klicken → Klicken Sie auf Anmeldeinformationen klicken.

[ec2-user@ip-xxx-xxx-xxx-xxx certs]$ aws configure AWS Access Key ID [None]: XXX AWS Secret Access Key [None]: YYY Default region name [None]: ap-northeast-1 Default output format [None]: json


 Wechseln Sie in das Verzeichnis certs und laden Sie das Zertifikat auf IAM hoch.
 my-secret-sert ist der Name des Zertifikats.

[ec2-user@ip-xxx-xxx-xxx-xxx certs]$ aws iam upload-server-certificate --server-certificate-name my-server-cert
--certificate-body file://domain.crt --private-key file://new.key



 ALB benötigt zwei Subnetze in der VPC. Wechseln Sie nach dem Erstellen zum EC2-Konsolenbildschirm und klicken Sie auf den Load Balancer.
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/0ecc2fad-f91b-a8a4-4463-14b90014a3ee.png)

 Wählen Sie ALB.

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/4d578306-bafd-76d8-81ea-83d005aab6cc.png)

 Wählen Sie HTTPS.
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/f462129a-f025-1031-4330-7babe5fea958.png)

 Wählen Sie in der VPC-Auswahl die zuvor erstellte VPC und das Subnetz aus.
 Wählen Sie in der Standardzertifikatauswahl das hochgeladene Zertifikat aus.

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/82a610d1-98a1-42df-7514-b064cb9dd117.png)

 Stellen Sie das Routing wie folgt ein.
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/9b1064ad-1855-2d9d-3680-a6d2ce824106.png)

 Durch Registrieren eines Ziels können Sie EC2 im ausgewählten Subnetz bei der Zielgruppe registrieren.
 Überprüfen Sie anhand der folgenden Meldung, ob es normal erstellt wurde.

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/7a6c6b97-51ba-7aef-f17d-6ef5b9dbdb6b.png)

## Referenzartikel
 --Erstellen eines Serverzertifikats mit OpenSSL
https://rfs.jp/server/setting/ssl-openssl.html
 - Die Geschichte des Hochladens eines SSL-Zertifikats zu ELB, während Sie Probleme haben
https://www.simpline.co.jp/tech/%E5%9B%9B%E8%8B%A6%E5%85%AB%E8%8B%A6%E3%81%97%E3%81%AA%E3%81%8C%E3%82%89elb%E3%81%ABssl%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E3%81%97%E3%81%9F/



Recommended Posts

Verwendung des Zertifikats und des privaten Schlüssels, die durch die BASIC-Authentifizierung von Docker mit AWS ALB erstellt wurden
Verwendung des Java-Frameworks mit AWS Lambda! ??
So schreiben Sie Testcode mit Basic-Zertifizierung
[Java] So erhalten Sie den Schlüssel und den Wert, die in Map gespeichert sind, durch iterative Verarbeitung
Großschreibung nur des angegebenen Bereichs mit Teilzeichenfolge. (Verwendung von Teilzeichenfolgen)
Verwendung von PlantUML mit Visual Studio Code (erstellt am 30. Oktober 2020)
[Rails] Wie man Kaminari mit Slim einführt und das Design ändert
Verwendung von MinIO mit derselben Funktion wie S3 Verwenden Sie Docker-Compose
Verwendung der link_to-Methode
Verwendung von StringBurrer und Arrays.toString.
Verwendung der include? -Methode
Verwendung der Methode form_with
Verwendung von EventBus3 und ThreadMode
Verwendung der Wrapper-Klasse
Wie man Gleichheit und Gleichheit benutzt (wie man Gleichheit benutzt)
Wie man mssql-tools mit alpine benutzt
twitter-4 Auswahl von Fehlern mit der von omniauth gem erstellten Twitter-Anmeldefunktion und wie man damit umgeht
Wie kann ich mit NUXTJS Official S3 und CloudFront für AWS bereitstellen? Mit Docker-Compose
Verwendung der Dateien args :, environment :, env_file: und .env mit dem Befehl docker-compose
SSH in Ubuntu von einem Terminal mit öffentlicher Schlüsselauthentifizierung
Verwenden Sie MyBatis, um eine Karte mit einem Schlüssel als Kennung und einem Wert als Entität abzurufen
So legen Sie fest, dass Tabulatoren und Leerzeichen sichtbar sind, indem Sie mit der Tabulatortaste Leerzeichen in Java-Dateien in Eclipse einfügen
Verwendung von OrientJS und OrientDB zusammen
[Java] Verwendung der File-Klasse
Verwendung von BootStrap mit Play Framework
[Schienen] Verwendung der Kartenmethode
[Java] Verwendung der toString () -Methode
Studieren der Verwendung des Konstruktors (Java)
[Verarbeitung × Java] Verwendung der Schleife
So richten Sie kapt ein und verwenden es
[Verarbeitung × Java] Verwendung der Klasse
Wie man die Zehner und Einsen findet
[Verarbeitung × Java] Verwendung der Funktion
So löschen Sie Daten mit einem externen Schlüssel
So testen Sie den privaten Bereich mit JUnit
Verwendung von Teilzeichenfolgen und Substratmethoden
[Java] Verwendung der Calendar-Klasse
Verwendung von @Builder und @NoArgsConstructor zusammen
Verwendung der Symbolleiste mit Superrand Teil 1 Stellen Sie Zeichen ein und ändern Sie die Farben
[Rails6] So verbinden Sie die von Scaffold generierte Buchungsfunktion mit der von devise generierten Benutzerfunktion
So verwenden Sie Eclipse auf meinem PC mit 32 Bit und 2 GB Speicher
Freigeben auf der Hostseite (Windows) und der Gastseite (CentOS 7) mit VirtualBox