Wie kann ich ein von einem Drittanbieter ausgestelltes Client-Zertifikat verwenden, wenn ich die gegenseitige TLS-Authentifizierung für API-Gateway-APIs konfiguriere?
Ich möchte ein von einem Drittanbieter ausgestelltes Client-Zertifikat verwenden, wenn ich die gegenseitige Transport Layer Security (TLS)-Authentifizierung für Amazon API Gateway-APIs konfiguriere.
Auflösung
Gehe wie folgt vor, um ein von einem Drittanbieter signiertes Client-Zertifikat für API Gateway mit TLS-Authentifizierung zu verwenden:
- Erstelle einen Truststore, um das signierte Zertifikat eines Drittanbieters zu verwenden.
- Erstelle einen benutzerdefinierten Domainnamen und eine API-Zuordnung für deine API-Gateway-API.
- Erstelle einen DNS-Eintrag, um den benutzerdefinierten Domainnamen dem API Gateway zuzuordnen.
- Deaktiviere den Standardendpunkt.
- Teste die API.
Hinweis:
- Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehler erhältst, stelle sicher, dass du die neueste AWS-CLI-Version verwendest.
- Gegenseitiges TLS wird für private APIs nicht unterstützt.
Erstelle einen Truststore, um das signierte Zertifikat eines Drittanbieters zu verwenden
1.Generiere ein RootCA. Das RootCA wird verwendet, um das Client-Zertifikat auszustellen.
openssl genrsa -out RootCA.key 4096 openssl req -new -x509 -days 3650 -key RootCA.key -out RootCA.pem
2.Fülle die erforderlichen Felder aus und gib den Domainnamen ein.
3.Erstelle einen privaten Schlüssel für das Client-Zertifikat, eine Certificate Signing Request (CSR) und ein Client-Zertifikat.
openssl genrsa -out my_client.key 2048 openssl req -new -key my_client.key -out my_client.csr
4.Signiere das Client-Zertifikat mit der Zertifizierungsstelle, die du zuvor erstellt hast.
openssl x509 -req -in my_client.csr -CA RootCA.pem -CAkey RootCA.key -set_serial 01 -out my_client.pem -days 3650 -sha256
5.Erstelle einen Amazon Simple Storage Service (Amazon S3)-Bucket, um die Datei truststore.pem zu speichern.
6.Lade die Datei rootCA.pem in den Amazon S3-Bucket Truststore hoch.
7.(Optional) Erstelle eine Zertifikatskettendatei vom CA-Zwischenzertifikat zur Stammzertifizierungsstelle.
Cat Intermediate.pem ca.pem >ca-chain.pem.
Weitere Informationen findest du unter Konfiguration deines Truststores.
Erstelle einen benutzerdefinierten Domainnamen und eine API-Zuordnung für deine API-Gateway-API
**Hinweis:**Nur Zertifikate mit einer Schlüsselgröße von 2048 Bit sind mit API Gateway sichtbar. Die Zertifikatsgröße darf 2048 Bit nicht überschreiten.
1.Öffne die API Gateway-Konsole und wähle dann Benutzerdefinierte Domainnamen.
2.Gib für Domainnamen deinen Domainnamen ein und wähle dann Erstellen aus.
3.Gib als Domainname deinen Domainnamen ein.
4.Wähle für die TLS-Mindestversion TLS 1.2.
5.Aktiviere die gegenseitige TLS-Authentifizierung.
6.Gib als Truststore-URI die Amazon S3-URI ein, die du zuvor erstellt hast.
7.Wähle für die Endpunktkonfiguration die Option Regional aus.
8.Wähle unter Zertifikatstyp deinen Zertifikatstyp und dann Domainnamen erstellen aus.
9.Wähle deinen benutzerdefinierten Domainnamen und dann „API-Zuordnungen konfigurieren“.
10.Wähle Neues Mapping hinzufügen.
11.Wähle die API, die Stufe und den Pfad für das Mapping aus und klicke dann auf Speichern.
Weitere Informationen findest du unter Wie kann ich einen benutzerdefinierten Domainnamen für meine API-Gateway-API einrichten?
Erstelle einen DNS-Eintrag, um den benutzerdefinierten Domainnamen dem API Gateway zuzuordnen
Erstelle einen DNS-Eintrag, um den benutzerdefinierten Domainnamen auf den regionalen API-Gateway-Domainnamen zu verweisen. Dadurch kann der Datenverkehr, der an den benutzerdefinierten Domainnamen gebunden ist, an den regionalen Hostnamen der API weitergeleitet werden. Der DNS-Eintrag kann vom Typ CNAME oder „A Alias“ sein.
Weitere Informationen findest du unter Route 53 konfigurieren, um Datenverkehr an einen API-Gateway-Endpunkt weiterzuleiten.
Deaktiviere den Standardendpunkt
Standardmäßig können Clients APIs mithilfe des execute-api-Endpunkts aufrufen, den API Gateway für deine API generiert. Deaktiviere den standardmäßigen execute-api-Endpunkt, damit Clients nur mit einem benutzerdefinierten Domain-Namen auf die API zugreifen können.
Informationen zu HTTP-APIs findest du unter Deaktivieren des Standardendpunkts für HTTP-APIs.
Informationen zu REST-APIs findest du unter Deaktivieren des Standardendpunkts für REST-APIs.
Die API testen
Teste die API mit den Parametern \ --key und \ --cert, um das Client-Zertifikat als Teil der Anfrage zu senden.
$ curl -v https://{YourCustomDomainName}/{resource} --key my_client.key --cert my_client.pem
**Hinweis:**Für eine erfolgreiche Anfrage müssen der private Schlüssel my\ _client.key und das Client-Zertifikat my\ _client.pem enthalten sein.
Verwandte Informationen
Einführung der gegenseitigen TLS-Authentifizierung für Amazon API Gateway
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr