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

标签 javascript cordova ssl websocket wss

我想在我的客户端和服务器之间创建一个安全连接 (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/

相关文章:

javascript - Angular 意外行为。自执行函数调用作用域函数

jquery - 在 jQuery Mobile 和 PhoneGap 中创建模板/持久页眉/页脚模板

ssl - 我是否需要 target-http-proxy 才能在 GKE 上使用 Google 管理的 SSL 证书设置 HTTPS 负载平衡器?

SSL 多级子域通配符

javascript - 仅当调用 return 时才退出函数

javascript - 在百度echarts热图中显示零值

windows-phone-7 - Cordova 本地存储不持久

cordova - ionic 3 - FatalException.Exception 错误 - 新版本中的错误?

spring - 我的 Spring Boot 应用程序能否仅在某些 @RequestMappings 上运行 HTTPS?

javascript - 仅在 firefox 中未定义函数