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 Schnittstelle RTCPeerConnection
erstellt ein X.509-Zertifikat und den dazugehörigen privaten Schlüssel und gibt ein Promise zurück, das mit dem neuen RTCCertificate
aufgelöst wird, sobald es erstellt wurde.
Syntax
RTCPeerConnection.generateCertificate(keygenAlgorithm)
Parameter
keygenAlgorithm
-
Ein Web Crypto API Algorithmus-Identifikator-String oder Objekt. Siehe
SubtleCrypto.generateKey()
für Details zum Format des Objekts.
Hinweis:>generateCertificate()
ist eine statische Methode und wird daher immer auf der Schnittstelle RTCPeerConnection
selbst aufgerufen, nicht auf einer Instanz davon.
Rückgabewert
Ein Promise, das zu einem neuen RTCCertificate
Objekt aufgelöst wird, 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 Algorithmus-Einstellungen angibt, die vom Browser nicht unterstützt werden oder die nicht mit einerRTCPeerConnection
verwendet werden dürfen.
Andere Fehler können auftreten; zum Beispiel, wenn der angegebene keygenAlgorithm
nicht erfolgreich in ein RTCCertificateExpiration
Wörterbuch umgewandelt 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-String sein.
Alternativ können Sie spezifische Details für die Konfiguration des Algorithmus angeben, indem Sie ein Objekt bereitstellen, das auf einer der Unterklassen der Algorithm
Klasse der Web Crypto API basiert.
Standardkonfigurationen
Alle Browser sind verpflichtet, die folgenden zwei Konfigurationen zu 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",
};
Zertifikat-Ablaufzeit
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 wichtig zu beachten, dass Browser die Ablaufzeit von Zertifikaten weiter einschränken können, wenn sie dies wünschen.
Beispiele
Festlegen von Algorithmen-Details
Dieses Beispiel fordert ein neues RSASSA-PKCS1-v1_5 Zertifikat mit einem SHA-256 Hash und einer Modul-Lä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] });
});
Algorithmus durch 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 |