GatewayWorker 如何在本地搭建wss 。

0

一、生成本地证书


创建服务器私钥,命令会让你输入一个口令:


$ openssl genrsa -des3 -out server.key 1024
创建签名请求的证书(CSR):


$ openssl req -new -key server.key -out server.csr
在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:


$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out server.key


最后标记证书使用上述私钥和CSR:


$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt


创建wss服务
准备工作:


1、Workerman版本不小于3.3.7


2、PHP安装了openssl扩展


3、已经申请了证书(pem/crt文件及key文件)放在了/etc/nginx/conf.d/ssl下


start_gateway.php中设置以下代码。


$context = array(
'ssl' => array(
'local_cert' => '/etc/nginx/conf.d/ssl/server.pem', // 或者crt文件
'local_pk' => '/etc/nginx/conf.d/ssl/server.key',
'verify_peer' => false
)
);
// websocket协议
$gateway = new Gateway("websocket://0.0.0.0:7272", $context);
// 开启SSL,websocket+SSL 即wss
$gateway->transport = 'ssl';

通过以上配置不成功,但是服务可以正常启动。

已邀请:

walkor

赞同来自: mingzhi

如果是自己生成的证书,需要添加一行 'allow_self_signed' => true,


'ssl' => array(
'local_cert' => '/etc/nginx/conf.d/ssl/server.pem', // 或者crt文件
'local_pk' => '/etc/nginx/conf.d/ssl/server.key',
'verify_peer' => false,
'allow_self_signed' => true,
)


http://php.net/manual/zh/context.ssl.php
这里有所有的ssl选项,可以根据自己的需要添加修改

要回复问题请先登录注册