Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Widerruf mithilfe der CloudFront Verbindungsfunktion und KVS
Sie können die Zertifikatssperrprüfung für die gegenseitige TLS-Authentifizierung implementieren, indem Sie CloudFront Verbindungsfunktionen mit kombinieren KeyValueStore. Dieser Ansatz bietet einen skalierbaren Mechanismus zum Widerruf von Zertifikaten in Echtzeit, CloudFront der die integrierte Zertifikatsvalidierung ergänzt.
Verbindungsfunktionen sind JavaScript Funktionen, die beim Aufbau einer TLS-Verbindung an CloudFront Edge-Standorten ausgeführt werden und es Ihnen ermöglichen, eine benutzerdefinierte Zertifikatsvalidierungslogik für die mTLS-Authentifizierung zu implementieren. Ausführliche Informationen zu Verbindungsfunktionen finden Sie unterOrdnen Sie eine CloudFront Verbindungsfunktion zu.
So funktioniert der Widerruf von Zertifikaten mit Verbindungsfunktionen
CloudFrontDie standardmäßige Zertifikatsvalidierung überprüft die Zertifikatskette, die Signatur und den Ablauf, beinhaltet jedoch keine integrierte Überprüfung des Zertifikatswiderrufs. Mithilfe von Verbindungsfunktionen können Sie eine benutzerdefinierte Sperrüberprüfung während des TLS-Handshakes implementieren.
Der Prozess zum Widerruf von Zertifikaten funktioniert wie folgt:
-
Speichern Sie die Seriennummern widerrufener Zertifikate in einem CloudFront KeyValueStore.
-
Wenn ein Client ein Zertifikat vorlegt, wird Ihre Verbindungsfunktion aufgerufen.
-
Die Funktion vergleicht die Seriennummer des Zertifikats mit der KeyValueStore.
-
Wenn die Seriennummer im Speicher gefunden wird, wird das Zertifikat gesperrt.
-
Ihre Funktion verweigert die Verbindung für gesperrte Zertifikate.
Dieser Ansatz ermöglicht die near-real-time Sperrüberprüfung im gesamten CloudFront globalen Edge-Netzwerk.
KeyValueStore Für widerrufene Zertifikate einrichten
Erstellen Sie zunächst eine, KeyValueStore um die Seriennummern der widerrufenen Zertifikate zu speichern:
Um eine KeyValueStore (Konsole) zu erstellen
Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die CloudFront Konsole unterhttps://console.aws.amazon.com/cloudfront/v4/home
. -
Wählen Sie im Navigationsbereich die Option Key Value Stores aus.
-
Wählen Sie Schlüsselwertspeicher erstellen aus.
-
Geben Sie einen Namen für Ihren Schlüsselwertspeicher ein (z. B. widerrufene Zertifikate).
-
(Optional) Fügen Sie eine Beschreibung hinzu.
-
Wählen Sie Create Key Value Store aus.
Um eine KeyValueStore (AWS CLI) zu erstellen
Das folgende Beispiel zeigt, wie ein erstellt wird KeyValueStore:
aws cloudfront create-key-value-store \ --name "revoked-certificates" \ --comment "Store for revoked certificate serial numbers"
Seriennummern widerrufener Zertifikate importieren
Nach der Erstellung eines KeyValueStore müssen Sie die Seriennummern der gesperrten Zertifikate importieren:
Bereiten Sie die Sperrdaten vor
Erstellen Sie eine JSON-Datei mit den Seriennummern Ihres gesperrten Zertifikats:
{ "data": [ { "key": "ABC123DEF456", "value": "" }, { "key": "789XYZ012GHI", "value": "" } ] }
Importieren aus S3
-
Laden Sie die JSON-Datei in einen S3-Bucket hoch
-
Importiere die Datei in dein KeyValueStore:
aws cloudfront create-key-value-store \ --name "revoked-certificates" \ --import-source '{ "SourceType": "S3", "SourceARN": "arn:aws:s3:::amzn-s3-demo-bucket1/revoked-serials.json" }'
Erstellen Sie eine Verbindungsfunktion für die Sperrprüfung
Erstellen Sie eine Verbindungsfunktion, die die Seriennummern von Zertifikaten mit Ihren folgenden Daten vergleicht KeyValueStore:
Codebeispiel für eine Verbindungsfunktion
Das folgende Beispiel zeigt eine Verbindungsfunktion, die die Sperrung von Zertifikaten überprüft:
import cf from 'cloudfront'; async function connectionHandler(connection) { const kvsHandle = cf.kvs(); // Get client certificate serial number const clientSerialNumber = connection.clientCertificate.certificates.leaf.serialNumber; // Check if the serial number exists in the KeyValueStore const isRevoked = await kvsHandle.exists(clientSerialNumber.replaceAll(':', '')); if (isRevoked) { console.log(`Certificate ${clientSerialNumber} is revoked. Denying connection.`); connection.logCustomData(`REVOKED:${clientSerialNumber}`); connection.deny(); } else { console.log(`Certificate ${clientSerialNumber} is valid. Allowing connection.`); connection.allow(); } }
So erstellen Sie die Verbindungsfunktion (AWS CLI)
Das folgende Beispiel zeigt, wie eine Verbindungsfunktion mit KeyValueStore Assoziation erstellt wird:
aws cloudfront create-connection-function \ --name "revocation-checker" \ --connection-function-config '{ "Comment": "Certificate revocation checking function", "Runtime": "cloudfront-js-2.0", "KeyValueStoreAssociations": { "Quantity": 1, "Items": [ { "KeyValueStoreARN": "arn:aws:cloudfront::123456789012:key-value-store/revoked-certificates" } ] } }' \ --connection-function-code fileb://revocation-checker.js
Ordnen Sie die Funktion Ihrer Distribution zu
Nachdem Sie Ihre Verbindungsfunktion erstellt und veröffentlicht haben, verknüpfen Sie sie mit Ihrer MTLS-fähigen CloudFront Distribution, wie im Abschnitt beschrieben. Ordnen Sie eine CloudFront Verbindungsfunktion zu