1.7.4后swoole增加了对SSL隧道加密的支持,在swoole_server中可以启用SSL证书加密。使用仅需增加$serv->set的配置即可,并将listener端口的类型,增加SWOOLE_SSL标志。

  1. $serv = new swoole_server("0.0.0.0", 443, SWOOLE_PROCESS, SWOOLE_SOCK_TCP | SWOOLE_SSL);
  2. $key_dir = dirname(dirname(__DIR__)).'/tests/ssl';
  3. // SWOOLE_SOCK_TCP表示此端口不加密
  4. // SWOOLE_SOCK_TCP | SWOOLE_SSL 表示此端口启用加密
  5. $serv->addlistener('0.0.0.0', 80, SWOOLE_SOCK_TCP);
  6. $serv->set(array(
  7. 'worker_num' => 4,
  8. 'ssl_cert_file' => $key_dir.'/ssl.crt',
  9. 'ssl_key_file' => $key_dir.'/ssl.key',
  10. ));

配置证书后即可启用SSL隧道加密,onReceive/$serv->send函数中还是继续填写明文,加密工作由底层完成。应用层无需考虑。

原文:https://wiki.swoole.com/wiki/page/240.html