RTCPeerConnection: метод generateCertificate() статический
Базовая поддержка Широко распространена
Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с января 2020 года.
Статический метод generateCertificate() интерфейса RTCPeerConnection создаёт сертификат X.509 и соответствующий закрытый ключ, возвращая промис, который разрешается новым RTCCertificate, как только он будет сгенерирован.
Синтаксис
RTCPeerConnection.generateCertificate(keygenAlgorithm)
Параметры
keygenAlgorithm-
Строка Web Crypto API
AlgorithmIdentifierили объект, наследуемый отAlgorithm, определяющий алгоритм, который будет использован при создании ключа сертификата.
Примечание: generateCertificate() — статический метод, поэтому он всегда вызывается на самом интерфейсе RTCPeerConnection , а не на его экземпляре.
Возвращаемое значение
Промис, который разрешается объектом нового RTCCertificate содержащего новый ключ на основе указанных опций.
Исключения
-
NotSupportedErrorDOMException -
Выбрасывается, если нормализованная форма
keygenAlgorithmопределяет алгоритм или параметры алгоритма, которые браузер не поддерживает или не разрешает использовать сRTCPeerConnection.
Могут возникнуть и другие ошибки; например, если указанный keygenAlgorithm не может быть успешно преобразован в словарь RTCCertificateExpiration, будет выброшена ошибка, возникшая во время этого преобразования.
Описание
Если указана строка, она должна быть строкой имени алгоритма, совместимого с Web Crypto API. В качестве альтернативы можно указать подробные сведения о конфигурации алгоритма, предоставив объект, базирующийся на одном из подклассов класса Algorithm Web Crypto API.
Стандартные конфигурации
Все браузеры обязаны поддерживать следующие две конфигурации. Совершенно возможно, что стандартные настройки браузера могут отличаться, но эти конфигурации всегда поддерживаются.
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",
};
Срок действия сертификата
По умолчанию новый сертификат настроен с expires, установленным в значение 2592000000 миллисекунд или 30 дней. Срок действия не может превышать 31536000000 миллисекунд или 365 дней. Также полезно отметить, что браузеры могут дополнительно ограничить срок действия сертификатов по своему усмотрению.
Примеры
Указание деталей алгоритма
В этом примере запрашивается новый сертификат RSASSA-PKCS1-v1_5 с использованием хеша SHA-256 и длиной модуля 2048.
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] });
});
Указание алгоритма по имени
В примере ниже указана строка, запрашивающая сертификат ECDSA.
RTCPeerConnection.generateCertificate("ECDSA");
Спецификации
| Спецификация |
|---|
| WebRTC: Взаимодействие в реальном времени в браузерах # dom-rtcpeerconnection-generatecertificate |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
generateCertificate_static |
48 | 79 | 22 | 35 | 12.1 | 48 | 24 | 35 | 12.2 | 6.0 | 48 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/generateCertificate_static