您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman創建https服務
发布时间:2022-01-09 15:45:49编辑:雪饮阅读()
php端實現
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
// 证书最好是申请的证书
$context = array(
'ssl' => array(
'local_cert' => '/www/wwwroot/www.fpm.com/ssl.crt', // 也可以是pem文件
'local_pk' => '/www/wwwroot/www.fpm.com/ssl.key',
'verify_peer' => false,
'allow_self_signed' => true, //如果是自签名证书需要开启此选项
)
);
// 这里设置的是http协议
$worker = new Worker('http://0.0.0.0:443', $context);
// 设置transport开启ssl,变成http+SSL即https
$worker->transport = 'ssl';
$worker->onMessage = function(TcpConnection $con, $msg) {
$con->send('ok');
};
Worker::runAll();
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
// 证书最好是申请的证书
$context = array(
'ssl' => array(
'local_cert' => '/www/wwwroot/www.fpm.com/ssl.crt', // 也可以是pem文件
'local_pk' => '/www/wwwroot/www.fpm.com/ssl.key',
'verify_peer' => false,
'allow_self_signed' => true, //如果是自签名证书需要开启此选项
)
);
// 这里设置的是http协议
$worker = new Worker('http://0.0.0.0:443', $context);
// 设置transport开启ssl,变成http+SSL即https
$worker->transport = 'ssl';
$worker->onMessage = function(TcpConnection $con, $msg) {
$con->send('ok');
};
Worker::runAll();
php端運行并有https訪問時
[root@localhost www.fpm.com]# /usr/local/php734/bin/php https.php start
Workerman[https.php] start in DEBUG mode
---------------------------------------- WORKERMAN -----------------------------------------
Workerman version:4.0.22 PHP version:7.3.4
----------------------------------------- WORKERS ------------------------------------------
proto user worker listen processes status
ssl root none http://0.0.0.0:443 1 [OK]
--------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.
SSL handshake error: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
SSL handshake error: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
https訪問:
這裏有一點就挺奇怪的,按照ssl上下文https://www.php.net/manual/zh/context.ssl.php中的介紹
verify_peer_name bool
是否需要验证 peer name。
默认值为 true.
allow_self_signed bool
默认值为 false
那麽我這裏假如將verify_peer設置為true反倒是不行了。
关键字词:workerman,https