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 generateCertificate()
statische Funktion der RTCPeerConnection
-Schnittstelle erstellt ein X.509-Zertifikat und den entsprechenden privaten Schlüssel und gibt ein Versprechen zurück, das mit dem neuen RTCCertificate
aufgelöst wird, sobald es generiert wurde.
Syntax
RTCPeerConnection.generateCertificate(keygenAlgorithm)
Parameter
keygenAlgorithm
-
Ein Web Crypto API
AlgorithmIdentifier
-String oder einAlgorithm
-unterklassenbasiertes Objekt, das einen Algorithmus angibt, der bei der Erstellung des Zertifikatschlüssels verwendet werden soll.
Hinweis: generateCertificate()
ist eine statische Methode, daher wird sie immer auf der RTCPeerConnection
-Schnittstelle selbst aufgerufen, nicht auf einer Instanz davon.
Rückgabewert
Ein Versprechen, das zu einem neuen RTCCertificate
-Objekt aufgelöst wird und 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 Algorithmen-Einstellungen angibt, die der Browser nicht unterstützt oder nicht mit einerRTCPeerConnection
erlaubt.
Es können weitere Fehler auftreten; beispielsweise, wenn der angegebene keygenAlgorithm
nicht erfolgreich in ein RTCCertificateExpiration
-Wörterbuch konvertiert werden kann, wird der Fehler, der während dieser Umwandlung auftritt, ausgelöst.
Beschreibung
Wenn ein String angegeben wird, muss es ein mit der Web Crypto API kompatibler Algorithmusname sein. Alternativ können Sie spezifische Details für die Konfiguration des Algorithmus angeben, indem Sie ein auf einer der Unterklassen der Algorithm
-Klasse basierendes Objekt bereitstellen.
Standardkonfigurationen
Alle Browser müssen die folgenden zwei Konfigurationen unterstützen. Es ist durchaus 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",
};
Zertifikatsablaufzeit
Standardmäßig wird das neue Zertifikat mit expires
auf einen Wert von 2592000000 Millisekunden oder 30 Tagen konfiguriert. Die Ablaufzeit darf 31536000000 Millisekunden oder 365 Tage nicht überschreiten. Es ist auch nützlich zu beachten, dass Browser die Ablaufzeit von Zertifikaten weiter einschränken können, wenn sie möchten.
Beispiele
Angabe von Algorithmen-Details
Dieses Beispiel fordert ein neues RSASSA-PKCS1-v1_5-Zertifikat unter Verwendung eines 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] });
});
Angabe eines Algorithmus durch Namen
Das untenstehende 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