讲师中心 微信公众号
AI工具推荐 视频效率加速

Workerman怎么配置HTTPS_SSL上下文设置操作【操作】

秋磊姑娘_8296

秋磊姑娘_8296

发布时间:2026-03-11 14:40:32

|

561人浏览过

|

来源于php中文网

原创

Workerman HTTPS服务必须显式配置ssl_context数组,含绝对路径的local_cert和local_pk,且verify_peer必须设为false;否则即使监听443端口也仅为裸TCP,触发ERR_SSL_PROTOCOL_ERROR。

workerman怎么配置https_ssl上下文设置操作【操作】

Workerman HTTPS 服务必须手动配置 SSL 上下文,不能靠 Nginx 反代就忽略

Workerman 本身不自动加载证书或解析 https:// 协议,哪怕你绑了 443 端口,没配 ssl_context 就是裸 TCP,浏览器会直接报 ERR_SSL_PROTOCOL_ERROR。这不是配置错,是根本没启用 TLS 握手。

关键点在于:Workerman 的 WebServer 或 TcpConnection 子类(如 HttpConnection)必须显式传入 ssl_context 数组,且证书路径必须是绝对路径、PHP 进程有读取权限。

  • ssl_context 必须包含 local_cert(全链 PEM,含私钥+证书+中间证书)和 local_pk(私钥文件)——或者合并进 local_cert,但必须用 file:// 前缀或绝对路径
  • 别用相对路径,./cert.pem 在 daemon 模式下大概率失效,因为工作目录已变
  • 私钥不能带密码,否则启动时卡住无报错;可用 openssl rsa -in key.pem -out key-no-pass.pem 去密

workerman/webserver 中配置 ssl_context 的正确写法

用 Workerman\Protocols\Http\WebServer 启 HTTPS 时,ssl_context 是构造参数之一,不是运行时 set 方法能补上的。漏掉这个数组,服务起来也是 HTTP。

示例片段:

SSL
SSL

配置HTTPS,管理TLS证书,并调试安全连接问题。

下载
$web = new WebServer('ssl://0.0.0.0:443', [
    'ssl_context' => [
        'local_cert'  => '/absolute/path/to/fullchain.pem',
        'local_pk'    => '/absolute/path/to/privkey.pem',
        'verify_peer' => false,
    ]
]);
  • verify_peer => false 是必需的,Workerman 不校验客户端证书,设为 true 会导致握手失败
  • 不要加 crypto_method,PHP 7.4+ 默认用 TLSv1_2_METHOD,硬指定反而可能触发 SSL routines::unsupported protocol
  • 证书文件必须是 PEM 格式,DER 或 PFX 会直接抛 failed to load certificate

常见错误:证书能用 curl 测通,但 Workerman 启动失败或连接重置

curl 成功只说明证书链和端口通,不代表 Workerman 能加载。典型现象是:php start.php start 无报错但访问白屏 / ERR_CONNECTION_RESET。

  • 检查 local_cert 是否同时包含了证书和私钥(顺序:私钥 → 域名证书 → 中间证书),缺一不可
  • 用 openssl x509 -in cert.pem -text -noout 和 openssl rsa -in key.pem -check -noout 分别验证证书和私钥有效性
  • 确认 PHP 进程用户(如 www-data)对两个文件有 read 权限,ls -l 看权限位,别只 chmod 755 目录却忘了文件
  • Workerman 不支持 SNI,单个进程只能绑定一套证书;多域名需用 Nginx 反代或多个 Worker 实例

HTTP 自动跳转 HTTPS 的坑:别在 Workerman 层做 301

Workerman 的 WebServer 没有内置协议识别,$_SERVER['HTTPS'] 永远为空,$_SERVER['REQUEST_SCHEME'] 也不可靠。想做跳转,必须依赖反向代理头(如 X-Forwarded-Proto)或监听双协议端口后手动判断。

  • 如果用了 Nginx 反代,应让 Nginx 处理跳转,Workerman 只跑 HTTP;否则容易陷入重定向循环
  • 若坚持 Workerman 内跳转,需在 onMessage 中检查 $connection->transport === 'ssl',但注意:非 SSL 连接无法访问该属性,要先判空
  • 更稳的做法是监听两个端口(80 + 443),80 上只返回 301 到 https://$host$request_uri,但需确保 DNS 和防火墙允许 80 端口

证书路径权限、PEM 格式完整性、以及 ssl_context 必须作为启动参数传入——这三点漏掉任一,HTTPS 就只是个监听在 443 的假象。

热门AI工具

更多
讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

相关专题

更多
http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

5350

2024.08.16

SSL检测工具介绍
SSL检测工具介绍

SSL检测工具有SSL Labs、SSL Check、SSL Server Test、SSLMate、SSL/TLS Analyzer等。详细介绍:1、SSL Labs是一个由Qualys提供的在线SSL检测工具,可以评估服务器证书的部署情况、加密套件、协议支持等方面的安全性,它提供了一个详细的报告,包括证书的颁发者、有效期、安全性配置等;2、SSL Check等等。

730

2023.10.20

Workerman安装配置教程
Workerman安装配置教程

Workerman安装配置教程专题提供Workerman安装配置、WebSocket开发、TCP通信、异步编程、高并发服务搭建与PHP实时通信开发教程。

166

2026.05.20

Workerman实时通信与长连接开发教程
Workerman实时通信与长连接开发教程

WWorkerman实时通信与长连接开发教程聚合实时通信、聊天室、长连接、消息推送、AI流式输出等Workerman高并发开发内容。

202

2026.05.20

Workerman异步通信与TCP服务器开发
Workerman异步通信与TCP服务器开发

Workerman异步通信与TCP服务器开发专题整理Workerman异步通信、TCP服务、HTTP服务、WebSocket开发与高并发PHP服务器教程。

187

2026.05.20

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

100

2026.09.30

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

100

2026.09.30

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

80

2026.09.30

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

60

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Webman中文手册
Webman中文手册

共0课时 | 0人学习

Workerman官方手册
Workerman官方手册

共0课时 | 0人学习

ThinkPHP5.1完全开发手册
ThinkPHP5.1完全开发手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn