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

Gehen Sie wie folgt vor, um ein von einem Drittanbieter signiertes Client-Zertifikat für API Gateway mit TLS-Authentifizierung zu verwenden:

  1. Erstellen Sie einen Truststore, um das signierte Zertifikat eines Drittanbieters zu verwenden.
  2. Erstellen Sie einen benutzerdefinierten Domainnamen und eine API-Zuordnung für Ihre API-Gateway-API.
  3. Erstellen Sie einen DNS-Eintrag, um den benutzerdefinierten Domainnamen dem API Gateway zuzuordnen.
  4. Deaktivieren Sie den Standardendpunkt.
  5. Testen Sie die API.

Hinweis:

Erstellen Sie einen Truststore, um das signierte Zertifikat eines Drittanbieters zu verwenden

1.Generieren Sie 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üllen Sie die erforderlichen Felder aus und geben Sie den Domainnamen ein.

3.Erstellen Sie 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.Signieren Sie das Client-Zertifikat mit der Zertifizierungsstelle, die Sie zuvor erstellt haben.

openssl x509 -req -in my_client.csr -CA RootCA.pem -CAkey RootCA.key -set_serial 01 -out my_client.pem -days 3650 -sha256

5.Erstellen Sie einen Amazon Simple Storage Service (Amazon S3)-Bucket, um die Datei truststore.pem zu speichern.

6.Laden Sie die Datei rootCA.pem in den Amazon S3-Bucket Truststore hoch.

7.(Optional) Erstellen Sie eine Zertifikatskettendatei vom CA-Zwischenzertifikat zur Stammzertifizierungsstelle.

Cat Intermediate.pem ca.pem >ca-chain.pem.

Weitere Informationen finden Sie unter Konfiguration Ihres Truststores.

Erstellen Sie einen benutzerdefinierten Domainnamen und eine API-Zuordnung für Ihre 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.Öffnen Sie die API Gateway-Konsole und wählen Sie dann Benutzerdefinierte Domainnamen.

2.Geben Sie für Domainnamen Ihren Domainnamen ein und wählen Sie dann Erstellen aus.

3.Geben Sie als Domainname Ihren Domainnamen ein.

4.Wählen Sie für die TLS-Mindestversion TLS 1.2.

5.Aktivieren Sie die gegenseitige TLS-Authentifizierung.

6.Geben Sie als Truststore-URI die Amazon S3-URI ein, die Sie zuvor erstellt haben.

7.Wählen Sie für die Endpunktkonfiguration die Option Regional aus.

8.Wählen Sie unter Zertifikatstyp Ihren Zertifikatstyp und dann Domainnamen erstellen aus.

9.Wählen Sie Ihren benutzerdefinierten Domainnamen und dann „API-Zuordnungen konfigurieren“.

10.Wählen Sie Neues Mapping hinzufügen.

11.Wählen Sie die API, die Stufe und den Pfad für das Mapping aus und klicken Sie dann auf Speichern.

Weitere Informationen finden Sie unter Wie kann ich einen benutzerdefinierten Domainnamen für meine API-Gateway-API einrichten?

Erstellen Sie einen DNS-Eintrag, um den benutzerdefinierten Domainnamen dem API Gateway zuzuordnen

Erstellen Sie 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 finden Sie unter Route 53 konfigurieren, um Datenverkehr an einen API-Gateway-Endpunkt weiterzuleiten.

Deaktivieren Sie den Standardendpunkt

Standardmäßig können Clients APIs mithilfe des Execute-API-Endpunkts aufrufen, den API Gateway für Ihre API generiert. Deaktivieren Sie den standardmäßigen Execute-API-Endpunkt, damit Clients nur mit einem benutzerdefinierten Domainnamen auf Ihre API zugreifen können.

Informationen zu HTTP-APIs finden Sie unter Deaktivierung des Standardendpunkts für eine HTTP-API.

Informationen zu REST-APIs finden Sie unter Deaktivierung des Standardendpunkts für eine REST-API.

Testen Sie die API

Testen Sie 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?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr