一、生成本地证书
创建服务器私钥,命令会让你输入一个口令:
$ 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';
通过以上配置不成功,但是服务可以正常启动。
如果是自己生成的证书,需要添加一行 '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选项,可以根据自己的需要添加修改
好的,多谢
我现在已经申请了线上 ca 证书,我怎么加到使用wss ,我只有一个域名,我试过多次都不成功
@2373:我知道了,竟然不能使用443端口,服务器并没有占用