gpt4 book ai didi

javascript - 带有客户端证书的 Cordova WebSocket (Javascript)

转载 作者:太空宇宙 更新时间:2023-11-03 14:34:01 25 4
gpt4 key购买 nike

我想在我的客户端和服务器之间创建一个安全连接 (SSL/TLS)。只有特定的客户端才有权连接到服务器。因此,我在服务器上创建了一个客户端证书(openssl)来提供相互授权。在服务器端,我已经使用创建的服务器证书使用 require(ws)(Node.js) 设置了我的 WebSocketServer。在客户端,我不知道标准 WebSocket API 如何为我提供附加客户端证书的方法。谁能告诉我如何创建将证书传递给服务器的客户端 WebSocket?

我正在使用 Javascript 在 Cordova 中进行开发。

基本的客户端 API 似乎仅限于此: https://www.w3.org/TR/websockets/

接口(interface):

interface WebSocket extends EventTarget {
binaryType: string;
readonly bufferedAmount: number;
readonly extensions: string;
onclose: (this: WebSocket, ev: CloseEvent) => any;
onerror: (this: WebSocket, ev: Event) => any;
onmessage: (this: WebSocket, ev: MessageEvent) => any;
onopen: (this: WebSocket, ev: Event) => any;
readonly protocol: string;
readonly readyState: number;
readonly url: string;
close(code?: number, reason?: string): void;
send(data: any): void;
readonly CLOSED: number;
readonly CLOSING: number;
readonly CONNECTING: number;
readonly OPEN: number;
addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;}

类:

declare var WebSocket: {
prototype: WebSocket;
new(url: string, protocols?: string | string[]): WebSocket;
readonly CLOSED: number;
readonly CLOSING: number;
readonly CONNECTING: number;
readonly OPEN: number;}

提前致谢。

最佳答案

我现在关闭这个问题。

我最终发现这个插件可能解决我的问题: https://github.com/flynetworks/cordova-websocket-clientcert使用 pkcs12 存档。

我对这个解决方案不满意,并将客户端身份验证从 TLS 客户端证书更改为简单的 HTTP 身份验证。

在此处查看使用 WebSockets 进行身份验证的可能性:https://www.rfc-editor.org/rfc/rfc6455#section-10.5

关于javascript - 带有客户端证书的 Cordova WebSocket (Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49833040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com