RTCPeerConnection: phương thức tĩnh generateCertificate()
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.
Hàm tĩnh generateCertificate() của giao diện RTCPeerConnection tạo một chứng chỉ X.509 và khóa riêng tương ứng, rồi trả về một promise được giải quyết với RTCCertificate mới sau khi quá trình tạo hoàn tất.
Cú pháp
RTCPeerConnection.generateCertificate(keygenAlgorithm)
Tham số
keygenAlgorithm-
Một chuỗi định danh thuật toán của Web Crypto API hoặc một đối tượng. Xem
SubtleCrypto.generateKey()để biết chi tiết định dạng của đối tượng.
Note:
generateCertificate() là phương thức tĩnh, vì vậy nó luôn được gọi trên chính giao diện RTCPeerConnection, không phải trên một thể hiện.
Giá trị trả về
Một promise được giải quyết thành một đối tượng RTCCertificate mới chứa khóa mới dựa trên các tùy chọn được chỉ định.
Ngoại lệ
NotSupportedErrorDOMException-
Ném ra nếu dạng chuẩn hóa của
keygenAlgorithmchỉ định một thuật toán hoặc cấu hình thuật toán mà trình duyệt không hỗ trợ, hoặc trình duyệt không cho phép dùng vớiRTCPeerConnection.
Các lỗi khác cũng có thể xảy ra; ví dụ, nếu keygenAlgorithm được chỉ định không thể chuyển thành công thành từ điển RTCCertificateExpiration, lỗi xảy ra trong quá trình chuyển đổi đó sẽ được ném ra.
Mô tả
Nếu chỉ định một chuỗi, nó phải là chuỗi tên thuật toán tương thích với Web Crypto API.
Ngoài ra, bạn có thể cung cấp chi tiết cụ thể cho cấu hình thuật toán bằng cách truyền một đối tượng dựa trên một trong các lớp con của lớp Algorithm của Web Crypto API.
Cấu hình chuẩn
Tất cả trình duyệt đều phải hỗ trợ hai cấu hình sau. Hoàn toàn có thể thiết lập mặc định của trình duyệt khác đi, nhưng hai cấu hình này luôn được hỗ trợ.
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",
};
Thời hạn hết hạn của chứng chỉ
Theo mặc định, chứng chỉ mới được cấu hình với expires bằng 2.592.000.000 mili giây, tức 30 ngày.
Thời hạn hết hạn không thể vượt quá 31.536.000.000 mili giây, tức 365 ngày.
Cũng cần lưu ý rằng trình duyệt có thể tiếp tục giới hạn thời hạn hết hạn của chứng chỉ nếu chúng muốn.
Ví dụ
>Chỉ định chi tiết thuật toán
Ví dụ này yêu cầu một chứng chỉ RSASSA-PKCS1-v1_5 mới với hash SHA-256 và độ dài modulus 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] });
});
Chỉ định thuật toán bằng tên
Ví dụ dưới đây chỉ định một chuỗi yêu cầu chứng chỉ ECDSA.
RTCPeerConnection.generateCertificate("ECDSA");
Thông số kỹ thuật
| Specification |
|---|
| WebRTC: Real-Time Communication in Browsers> # dom-rtcpeerconnection-generatecertificate> |