找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索本站精品资源

首页 教程频道 小程序开发 查看内容

给swoole的websocket server加上ssl

作者:模板之家 2018-4-18 09:57 1194人关注

作者:柯云,来自原文地址 微信小程序的websocket必须是wss协议, 于是捣鼓给swoole的websocket server加入SSL支持。 第一步,准备好自己的域名,备案等,就不啰嗦了。 第二步,到阿里云申

作者:柯云,来自原文地址 
微信小程序的websocket必须是wss协议, 
于是捣鼓给swoole的websocket server加入SSL支持。

第一步,准备好自己的域名,备案等,就不啰嗦了。

第二步,到阿里云申请免费的证书服务。 

按照提示一步步进行,最后下载得到一个pem文件和一个key文件。 
将文件上传到服务器上。

第三步,将证书对应的域名,解析到swoole服务器的IP上。

第四步,重新编译安装swoole,加入ssl支持

 

					
  1. cd swoole-src
  2. phpize
  3. ./configure --enable-openssl
  4. make && make install

当然,要先确保你的系统安装了openssl,php也安装了openssl扩展

第五步,编码,创建支持ssl的websocket服务

 

					
  1. $ws = new swoole_websocket_server("0.0.0.0", 9502, SWOOLE_PROCESS, SWOOLE_SOCK_TCP | SWOOLE_SSL);
  2. $key_dir = "/usr/local/ca";
  3.  
  4. $ws->set(array(
  5. 'worker_num' => 4,
  6. 'ssl_cert_file' => $key_dir.'/xxxxxxxxxxxx.pem',
  7. 'ssl_key_file' => $key_dir.'/xxxxxxxxxxxx.key',
  8. ));

以上,基本实现了一个wss协议的websocket服务

ps:如基于web来连接wss,web也需要是https

nginx配置HTTPS支持

修改Nginx配置文件,让其包含新标记的证书和私钥:

 

					
  1. server {
  2. server_name YOUR_DOMAINNAME_HERE;
  3. listen 443;
  4. ssl on;
  5. ssl_certificate /usr/local/nginx/conf/xxxxxxxxxxxx.pem;
  6. ssl_certificate_key /usr/local/nginx/conf/xxxxxxxxxxxx.key;
  7. }

重启nginx。

crt文件可以直接用我们的pem文件替换



路过

雷人

握手

鲜花

鸡蛋
原作者: 模板之家 来自: 网络收集

全部回复(0)