RTCPeerConnection: generateCertificate() statische Methode
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Die statische Funktion generateCertificate()
des RTCPeerConnection
-Interfaces erstellt ein X.509-Zertifikat und den entsprechenden privaten Schlüssel. Sie gibt ein Promise zurück, das auf das neue RTCCertificate
auflöst, sobald es generiert wurde.
Syntax
RTCPeerConnection.generateCertificate(keygenAlgorithm)
Parameter
keygenAlgorithm
-
Ein Web Crypto API
AlgorithmIdentifier
-String oder einAlgorithm
-unterklassiertes Objekt, das einen Algorithmus angibt, der bei der Erstellung des Schlüssels für das Zertifikat verwendet werden soll.
Note:
generateCertificate()
ist eine statische Methode und wird daher immer auf dasRTCPeerConnection
-Interface selbst aufgerufen, nicht auf eine Instanz davon.
Rückgabewert
Ein Promise, das auf ein neues RTCCertificate
-Objekt auflöst, das einen neuen Schlüssel basierend auf den angegebenen Optionen enthält.
Ausnahmen
NotSupportedError
DOMException
-
Wird ausgelöst, wenn die normalisierte Form von
keygenAlgorithm
einen Algorithmus oder Algorithmenparameter spezifiziert, die der Browser nicht unterstützt oder deren Verwendung mit einerRTCPeerConnection
nicht erlaubt ist.
Andere Fehler können auftreten; zum Beispiel, wenn das angegebene keygenAlgorithm
nicht erfolgreich in ein RTCCertificateExpiration
-Wörterbuch umgewandelt werden kann, wird der während dieser Umwandlung auftretende Fehler ausgelöst.
Beschreibung
Wenn ein String angegeben wird, muss es sich um einen mit der Web Crypto API kompatiblen Algorithmusnamen-String handeln. Alternativ können Sie bestimmte Details zur Konfiguration des Algorithmus angeben, indem Sie ein Objekt basierend auf einer der Unterklassen der Algorithm
-Klasse der Web Crypto API bereitstellen.
Standardkonfigurationen
Alle Browser müssen die folgenden zwei Konfigurationen unterstützen. Es ist völlig möglich, dass die Standard-Einstellungen eines Browsers unterschiedlich sind, aber diese werden immer unterstützt.
RSASSA-PKCS1-v1_5
let stdRSACertificate = {
name: "RSASSA-PKCS1-v1_5",
modulusLength: 2048,
publicExponent: new Uint8Array([1, 0, 1]),
hash: "SHA-256",
};
ECDSA
let stdECDSACertificate = {
name: "ECDSA",
namedCurve: "P-256",
};
Ablaufzeit des Zertifikats
Standardmäßig wird das neue Zertifikat mit einem expires
-Wert von 2592000000 Millisekunden oder 30 Tagen konfiguriert. Die Ablaufzeit darf 31536000000 Millisekunden oder 365 Tage nicht überschreiten. Es ist auch nützlich zu wissen, dass Browser die Ablaufzeit von Zertifikaten weiter einschränken können, wenn sie dies wünschen.
Beispiele
Details des Algorithmus angeben
Dieses Beispiel fordert ein neues RSASSA-PKCS1-v1_5-Zertifikat mit einem SHA-256-Hash und einer Moduluslänge von 2048 an.
RTCPeerConnection.generateCertificate({
name: "RSASSA-PKCS1-v1_5",
hash: "SHA-256",
modulusLength: 2048,
publicExponent: new Uint8Array([1, 0, 1]),
}).then((cert) => {
const pc = new RTCPeerConnection({ certificates: [cert] });
});
Einen Algorithmus nach Namen angeben
Das folgende Beispiel gibt einen String an, der ein ECDSA-Zertifikat anfordert.
RTCPeerConnection.generateCertificate("ECDSA");
Spezifikationen
Specification |
---|
WebRTC: Real-Time Communication in Browsers # dom-rtcpeerconnection-generatecertificate |
Browser-Kompatibilität
BCD tables only load in the browser