我在将Php客户端应用程序连接到启用了Ssl的ActiveMq安装时遇到问题 . 我看了很多消息来源,随着时间的推移越来越困惑 .

到目前为止,我的设置通过users / groups.properties和authorizationPlugin使用身份验证 . 这在常规连接上工作正常

对于ActiveMq Ssl,我遵循了一些文章并创建了Jks存储和证书,并且还配置了以下内容

<sslContext>
        <sslContext keyStore="file:${activemq.base}/conf/server.ks"
             keyStorePassword="$STORE_PASS"
             trustStore="file:${activemq.base}/conf/server.ts"
             trustStorePassword="$STORE_PASS" />
</sslContext>

<transportConnector 
 name="stomp+ssl" uri="stomp+ssl://0.0.0.0:61617?needClientAuth=true"/>

我也尝试过ACTIVEMQ_SSL_OPTS方法 . 启动服务器时加载都很正常 . 日志显示Sll连接器已启动 . 我还检查了php cli以确保在stomp安装时启用了Sll

我遇到的问题是使用Php stomp客户端 . 首先,这些是我读过的文章 .

http://activemq.apache.org/how-do-i-use-ssl.html

http://php.net/manual/en/stomp.construct.php

https://github.com/stomp-php/stomp-php/wiki/Connectivity

根据我的理解,有两个基于文档的php stomp库我无法弄清楚如何设置所有这些 . php网站文档只是给出了一个使用ssl协议构造函数的例子

$link = stomp_connect('ssl://localhost:61612', $user, $pass, $headers);

这不起作用,我在日志中得到null证书错误 .

另一篇使用FuseSource stomp的文章可以选择在 Build 连接时包含客户端证书,但在进一步深入到文章之后,它看起来只是通过Sll证书进行身份验证而不是用户/密码进行身份验证 .

https://github.com/rethab/php-stomp-cert-example/blob/master/README.md

所以我回到之前的stomp安装,认为有一种方法来传递客户端证书文件,但似乎没有它的接口和头文件参数上没有文件,我假设不是如何去做这个 .

在这个复杂的混乱中,有人可以解释一下,我错了 .