RTCPeerConnection: generateCertificate() statische Methode
Die generateCertificate()
statische Funktion des RTCPeerConnection
-Interfaces erstellt ein X.509-Zertifikat und den entsprechenden privaten Schlüssel. Sie 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
AlgorithmIdentifier
-String oder einAlgorithm
-subklassiertes Objekt, das einen Algorithmus spezifiziert, der für die Erstellung des Zertifikatschlüssels verwendet werden soll.
Note:
generateCertificate()
ist eine statische Methode, daher wird sie immer auf demRTCPeerConnection
-Interface selbst und nicht auf einer Instanz davon aufgerufen.
Rückgabewert
Ein Promise, das zu einem neuen RTCCertificate
-Objekt mit einem neuen Schlüssel, basierend auf den angegebenen Optionen, aufgelöst wird.
Ausnahmen
NotSupportedError
DOMException
-
Wird ausgelöst, wenn die normalisierte Form von
keygenAlgorithm
einen Algorithmus oder Algorithmen-Einstellungen spezifiziert, die der Browser nicht unterstützt oder deren Verwendung er in Verbindung mit einerRTCPeerConnection
nicht erlaubt.
Es können weitere Fehler auftreten; beispielsweise, wenn das angegebene keygenAlgorithm
nicht erfolgreich in ein RTCCertificateExpiration
-Dictionary umgewandelt werden kann, wird der Fehler ausgelöst, der während dieser Umwandlung auftritt.
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 Objekt basierend auf einer der Unterklassen der Algorithm
-Klasse der Web Crypto API bereitstellen.
Standardkonfigurationen
Alle Browser sind verpflichtet, die folgenden zwei Konfigurationen zu unterstützen. Es ist völlig möglich, dass die Standard-Einstellungen eines Browsers abweichen, 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 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 dies wünschen.
Beispiele
Details des Algorithmus spezifizieren
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 spezifizieren
Das folgende Beispiel spezifiziert einen String, 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