1.生成证书
https://www.cnblogs.com/liyulong1982/p/6106129.html
2.
ini_set('memory_limit','2G');
require_once 'Autoloader.php';
// 证书最好是申请的证书
$context = array(
'ssl' => array(
'local_cert' => '/vagrant/sample/server.crt', // 也可以是crt文件
'local_pk' => '/vagrant/sample/server.key',
'cafile' => '/vagrant/sample/ca.crt',
'verify_peer' => true,
// 'allow_self_signed '=>true,
)
);
// 这里设置的是http协议
// 设置transport开启ssl,变成http+SSL即https
//业务上查询,领取奖励的业务服务进程
$webserver = new \Workerman\Worker('http://0.0.0.0:443', $context);
// 类似nginx配置中的root选项,添加域名与网站根目录的关联,可设置多个域名多个目录
// 设置开启多少进程
$webserver->transport = 'ssl';
$webserver->onMessage = function($con, $msg) {
$con->send("sssssss") ;
};
\Workerman\Worker::runAll();
3.测试
在/etc/hosts配置127.0.0.1 local.task.com
curl --cert ./client.crt --key client.key --cacert ca.crt https://local.task.com:443
openssl s_client -connect local.task.com:443 -cert client.crt -key client.key -CAfile ca.crt
如果verify_peer设置为false,表示不验证客户端的ssl证书,那么就不需要client.crt和client.key,只需要带--cacert或者-k选项,
curl --cacert ca.crt https://local.task.com:443
curl -k https://local.task.com:443