Swoole整合ThinkPHP3.2系列教程五_一个不靠谱的程序员-CSDN博客

来源: Swoole整合ThinkPHP3.2系列教程五_一个不靠谱的程序员-CSDN博客

如何开启SSL
对于已经升级成了https协议的网站,我们需要使用websocket连接swoole的话,无法正常连接上swoole服务。因为https认为这是不安全的连接,所以我们必须为swoole开启SSL

1.检查当前的swoole扩展是否开启了openssl:
php –ri swoole
如果看到openssl=>enabled,则表示当前安装的swoole扩展已经开启了SSL。否则请重新编译,携带编译参数–enable-openssl

下载源代码包后,在终端进入源码目录,执行下面的命令进行编译和安装 (和重新编译安装步骤一样)
cd swoole
phpize
./configure –enable-openssl (如果这一步提示让你设置php-config的路径,在这加上就行了)
make
sudo make install

如果是之前安装过swoole,这里就不用配置php.ini文件里的extension=swoole.so,否则需要自己配置一下。
安装完成以后重新执行上述命令检测是否启用SSL

2.修改swoole.php里文件,定义crt证书路径和key密匙路径。

//笔者测试环境里是把这两个文件都放到了Swoole目录下,根据自定义设置修改
define(‘SSL_CRT’, SWOOLE_PATH.’/server.crt’);
define(‘SSL_KEY’, SWOOLE_PATH.’/server.key’);

3.修改Server.php里配置项$options数组,增加以下参数:

‘ssl_cert_file’ => SSL_CRT,
‘ssl_key_file’ => SSL_KEY,

4.修改Server.php里init()方法里的创建server时增加额外的参数

$this->swoole = new swoole_websocket_server($this->host, $this->port , SWOOLE_PROCESS, SWOOLE_SOCK_TCP | SWOOLE_SSL);

5.将websocket客户端里的连接地址ws改成wss(注意这里只能走域名,走IP的话无法连接,因为SSL证书是绑定在域名上的)

6.重启swoole服务,打开浏览器测试一下吧。
————————————————
版权声明:本文为CSDN博主「一个不靠谱的程序员」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013705066/article/details/77774379

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏