我问,因为我在死胡同与我的PHP
websocket服务器。我正在寻找2周的解决方案,我访问了Google
中的所有结果,标签:websocket
, SSL
, WSS
。
问题是由使用WSS
(websocket secure)
引起的,我的服务器可以完美地使用WS
。但是我必须使用SSL
,我不能放弃这个。更准确地说,当客户端(浏览器)向服务器发送握手时,它是加密的。我想是的,因为这是一个非常奇怪的角色的混合体。接下来,我认为我应该用openssl_*
函数解密这个字符串,所以我写了一个代码:
//$pKey - decrypted private key of my SSL certificate
//$buffer - string with strange chars - probably encrypted handshake
$privateKey = openssl_pkey_get_private($pKey);
openssl_private_decrypt($buffer , $open , $privateKey);
openssl_free_key($privateKey);
我得到错误:
error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01
或
error:04065072:rsa routines:RSA_EAY_PRIVATE_DECRYPT:padding check failed
$open
为空。我尝试了每个填充选项,错误是相同的。
任何想法?
我建议使用一个单独的进程(Nginx/STunnel)处理SSL。
看到NGINX反向代理websockets和启用SSL (wss://)?