Spec-Zone.ru › Web APIs

RTCPeerConnection: метод generateCertificate() статический

Базовая поддержка Широко распространена

Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с января 2020 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Статический метод generateCertificate() интерфейса RTCPeerConnection создаёт сертификат X.509 и соответствующий закрытый ключ, возвращая промис, который разрешается новым RTCCertificate, как только он будет сгенерирован.

Синтаксис

RTCPeerConnection.generateCertificate(keygenAlgorithm)

Параметры

keygenAlgorithm

Строка Web Crypto API AlgorithmIdentifier или объект, наследуемый от Algorithm, определяющий алгоритм, который будет использован при создании ключа сертификата.

Примечание: generateCertificate() — статический метод, поэтому он всегда вызывается на самом интерфейсе RTCPeerConnection , а не на его экземпляре.

Возвращаемое значение

Промис, который разрешается объектом нового RTCCertificate содержащего новый ключ на основе указанных опций.

Исключения

NotSupportedError DOMException

Выбрасывается, если нормализованная форма 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

См. также

  • API WebRTC
  • Web Crypto API
  • Безопасность сайта
  • Безопасность в сети Web
  • Симметричное шифрование
  • Crypto

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API