首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过ssl从php应用程序连接到gearman服务器

通过ssl从php应用程序连接到gearman服务器
EN

Stack Overflow用户
提问于 2019-11-26 07:58:54
回答 3查看 330关注 0票数 2

我试图加密运行在php 5.6.40上的应用程序到gearman服务器(1.1.12版)的连接。我已经启动了启用ssl的gearman服务器,并将ca文件、证书和密钥作为参数传递。

代码语言:javascript
复制
gearmand -d --ssl --ssl-ca-file=ca.crt --ssl-certificate=gearman.crt --ssl-key=gearman.key

现在我陷入困境的地方是让我的php客户端使用ssl。我使用的是GearmanClient类,它附带了php的gearman扩展,我想不出实现这个目标的方法。

代码语言:javascript
复制
 $gearmanClient = new GearmanClient();
 $gearmanClient->addServer('server ip', 4730);
 $result = $gearmanClient->doHighBackground('job-type', 'workload');

上面的代码可以工作,但是作业类型和工作负载是未经加密发送到gearman服务器的。如果php的gearman扩展是不可能的,有人知道我们是否可以使用套接字函数来实现这一点吗?我经历了很多与此相关的线索,但却找不到合适的答案。如果这一问题已经得到答复,请表示歉意。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-11-27 18:50:26

gearmand中的SSL支持工作得很好。我已经在生产环境中使用了3年了。另一个答案中提到的问题仍然没有解决,因为这个问题实际上是关于对文档进行改进,并且这个愿望列表项目没有得到解决。

在PHP扩展中获得SSL支持是可能的,但它需要自己修补和编译代码。当前版本的PHP扩展可以在https://github.com/wcgallego/pecl-gearman上找到,但它适用于PHP7.x。

据我所知,针对较早版本的PHP (< 7.x)的Gearman扩展已不再维护,但您可以在https://github.com/hjr3/pecl-gearman下载最新版本,并在https://bugs.php.net/bug.php?id=67623上应用该修补程序。它起作用了。在使用PHP7.x之前,我的工作场所在生产中使用了大约一年。

如果您使用的是PHP,我最近打开了一个PR,用于在7+上添加SSL支持。您还应该阅读https://github.com/wcgallego/pecl-gearman/issues/43上的问题线程,以获得一些注意事项。

在这两种情况下,您还需要一个来自gearmand1.1.19或更高版本的libgearman.so,它是用--enable-ssl编译的,并且支持setSSL() API。

票数 3
EN

Stack Overflow用户

发布于 2019-11-27 14:22:05

我之前不愿回答这个问题,因为它与PHP有关。

实际上,gearmand正确地支持SSL连接。@emix提到的问题仍然存在,因为gearmand本身在存储库中没有ssl测试。

gearmand 客户/工人的Perl实现支持SSL连接,并包含用于此目的的ssl测试

票数 2
EN

Stack Overflow用户

发布于 2019-11-26 12:46:23

据称,SSL是,而不是这是很久以前作为bug发布的。和这个问题仍然被认为是公开的。官方的延期似乎也已不复存在:上一次发布是在6年多以前。

如果我站在你的立场上,我会转到更稳定的地方,有更好的社区支持。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59046197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档