Wie kann ich ein Client-Zertifikat verwenden, das von einem Drittanbieter ausgestellt wurde, wenn ich die gegenseitige TLS-Authentifizierung für API-Gateway-APIs konfiguriere?
Ich möchte ein Client-Zertifikat verwenden, das von einem Drittanbieter ausgestellt wurde, wenn ich die gegenseitige TLS-Authentifizierung (Transport Layer Security) für Amazon-API-Gateway-APIs konfiguriere.
Lösung
Gehen Sie wie folgt vor, um ein von einem Drittanbieter signiertes Client-Zertifikat für API Gateway mit TLS-Authentifizierung zu verwenden:
- Erstellen Sie zum Verwenden des signierten Zertifikats eines Drittanbieters einen Truststore.
- Erstellen Sie einen benutzerdefinierten Domain-Namen und eine API-Zuordnung für Ihre API-Gateway-API.
- Erstellen Sie einen DNS-Eintrag, um den benutzerdefinierten Domain-Namen dem API Gateway zuzuordnen.
- Deaktivieren Sie den Standard-Endpunkt.
- Testen sie die API.
Hinweis:
- Wenn Sie beim Ausführen von Befehlen der AWS Command Line Interface (AWS CLI) Fehlermeldungen erhalten, stellen Sie sicher, dass Sie die neueste AWS-CLI-Version verwenden.
- Gegenseitiges TLS wird für private APIs nicht unterstützt.
Erstellen Sie zum Verwenden des signierten Zertifikats eines Drittanbieters einen Truststore
1. Generieren Sie eine Stammzertifizierungsstelle. Die Stammzertifizierungsstelle dient zum Ausstellen des Client-Zertifikats.
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 Domain-Namen 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 mithilfe der zuvor von Ihnen erstellten Zertifizierungsstelle.
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 bis zur Stammzertifizierungsstelle.
Cat Intermediate.pem ca.pem >ca-chain.pem.
Weitere Informationen finden Sie unter Konfigurieren des Truststores.
Erstellen eines benutzerdefinierten Domain-Namens und einer API-Zuordnung für Ihre API-Gateway-API
Hinweis: Nur Zertifikate mit einer Schlüsselgröße von 2 048 Bit sind mit API Gateway sichtbar. Die Größe des Zertifikats darf 2 048 Bit nicht überschreiten.
1. Öffnen Sie die API-Gateway-Konsole und wählen Sie dann Benutzerdefinierte Domain-Namen aus.
2. Geben Sie für Domain-Namen Ihren Domain-Namen ein und wählen Sie dann Erstellen aus.
3. Geben Sie als Domain-Name Ihren Domain-Namen ein.
4. Wählen Sie als TLS-Mindestversion TLS 1.2 aus.
5. Aktivieren Sie die gegenseitige TLS-Authentifizierung.
6. Geben Sie als Truststore-URI die zuvor von Ihnen erstellte Amazon S3-URI ein.
7. Wählen Sie für die Endpunktkonfiguration die Option Regional aus.
8. Wählen Sie unter Zertifikatstyp Ihren Zertifikatstypund dann Domain-Namen erstellen aus.
9. Wählen Sie Ihren benutzerdefinierten Domain-Namen und dann API-Zuordnungen konfigurieren aus.
-
Wählen Sie Neue Zuordnung hinzufügen.
-
Wählen Sie die API, die Stufe und den Pfad für die Zuordnung aus und klicken Sie dann auf Speichern.
Weitere Informationen finden Sie unter Wie kann ich einen benutzerdefinierten Domain-Name für meine API-Gateway-API einrichten?
Erstellen Sie einen DNS-Eintrag, um den benutzerdefinierten Domain-Namen dem API Gateway zuzuordnen
Erstellen Sie einen DNS-Eintrag, um den benutzerdefinierten Domain-Namen auf den regionalen API-Gateway-Domain-Namen zu verweisen. Dadurch kann der Datenverkehr, der an den benutzerdefinierten Domain-Namen gebunden ist, an den regionalen Hostnamen der API weitergeleitet werden. Der Typ des DNS-Eintrags kann CNAME oder „A Alias“ sein.
Weitere Informationen finden Sie unter Konfigurieren von Route 53 für die Weiterleitung des Datenverkehrs an einen API-Gateway-Endpunkt.
Deaktivieren des Standard-Endpunkts
Standardmäßig können Clients APIs mithilfe des Endpunkts execute-api aufrufen, den API Gateway für Ihre API generiert. Deaktivieren Sie den Standardendpunkt execute-api, damit Clients nur mit einem benutzerdefinierten Domain-Namen auf Ihre API zugreifen können.
Informationen zu HTTP-APIs finden Sie unter Deaktivierung des Standard-Endpunkts für eine HTTP-API.
Informationen zu REST-APIs finden Sie unter Deaktivieren des Standard-Endpunkts für eine REST-API.
Testen der 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.
Ähnliche Informationen
Einführung der gegenseitigen TLS-Authentifizierung für Amazon API Gateway

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 9 Monaten
- AWS OFFICIALAktualisiert vor 10 Monaten
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 3 Monaten