Direkt zum Inhalt

Wie kann ich ein von einem Drittanbieter ausgestelltes Client-Zertifikat verwenden, wenn ich die gegenseitige TLS-Authentifizierung für API-Gateway-APIs konfiguriere?

Lesedauer: 4 Minute
0

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:

  1. Erstelle einen Truststore, um das signierte Zertifikat eines Drittanbieters zu verwenden.
  2. Erstelle einen benutzerdefinierten Domainnamen und eine API-Zuordnung für deine API-Gateway-API.
  3. Erstelle einen DNS-Eintrag, um den benutzerdefinierten Domainnamen dem API Gateway zuzuordnen.
  4. Deaktiviere den Standardendpunkt.
  5. Teste die API.

Hinweis:

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

Wie kann ich Probleme mit der Zertifikatskette und selbstsignierten Zertifikaten für Amazon API Gateway beheben, wenn benutzerdefinierte Domains und gegenseitiges TLS aktiviert sind?

Einführung der gegenseitigen TLS-Authentifizierung für Amazon API Gateway

Wie behebe ich HTTP 403 Forbidden-Fehler von einem benutzerdefinierten API-Gateway-Domainnamen, für den gegenseitiges TLS erforderlich ist?