创建 HTTPS 服务
我们建议您使用 Nginx
反向代理的方案来创建 HTTPS
服务,这并不会画蛇添足,在多数情况下会更加方便,比如:绑定多域名、静态资源请求处理、以后可能添加的重定向规则、负载均衡等等,都可以通过 Nginx
完成,同时并不影响常驻内存运行,这也是两种最通用的办法之一。
- 您还可以查阅 Workerman 官方的创建 HTTPS 服务文档。
- 创建
https
后,若还要使用ws
服务,则必需创建 WSS 服务,即http + ws
,https + wss
通过 Nginx 创建 https 服务
若您使用宝塔等集成环境,可以先创建站点,再编辑站点的(Nginx)配置文件。
bash
server {
# 监听 443(这行不能少)
listen 443;
server_name 站点域名.com;
# SSL 相关配置开始,部分集成环境能可视化配置证书,所以若已存在则不再需要手动配置,主要是证书和秘钥路径 <<<
# 证书文件路径(绝对路径)
ssl_certificate /etc/ssl/server.pem;
# 证书秘钥文件路径(绝对路径)
ssl_certificate_key /etc/ssl/server.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# SSL 相关配置结束 >>>
# 以下配置和 thinkphp 的伪静态规则冲突,请去除伪静态规则
# 反向代理配置开始,部分集成环境能可视化配置反向代理,所以若已存在则不再需要手动配置 <<<
location / {
# 若有自定义 http 服务端口,请注意修改
proxy_pass http://127.0.0.1:8000;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Connection "Upgrade";
}
# 反向代理配置结束 >>>
}
通过系统内配置创建 https 服务
- 需要
PHP
已经安装了openssl
扩展 - 已经申请了证书(
pem/crt
文件及key
文件)放在了/etc/ssl
目录(示例路径,可自定义,程序有访问权限即可) - 找到
config/worker_http.php
配置文件,做如下配置 - 完成配置后,您必需使用
SSL
证书对应的域名访问站点,不可通过ip
访问,不可通过http
访问
php
return [
// Worker的参数(支持所有配置项)
'option' => [
// 以上略,请增加以下配置项,设置 transport 开启 ssl
'transport' => 'ssl',
],
// socket 上下文选项,可配置SSL证书等
'context' => [
'ssl' => [
'local_cert' => '/etc/ssl/server.pem', // 也可以是 crt 文件
'local_pk' => '/etc/ssl/server.key',
'verify_peer' => false,
'allow_self_signed' => false, // 如果是自签名证书需要开启此选项
]
],
];