[英]Trouble with ActiveMq with Ssl using Php Stomp
我在將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踩踏客戶端。 首先,這些是我閱讀的文章。
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);
這不起作用,我在日志中得到一個空證書錯誤。
另一篇使用FuseSource stomp的文章提供了在建立連接時包括客戶端證書的選項,但深入該文章后,似乎只是通過Sll證書而不是用戶/密碼進行身份驗證。
https://github.com/rethab/php-stomp-cert-example/blob/master/README.md
因此,我回到了以前的stomp安裝,以為有一種方法可以傳遞客戶端證書文件,但是似乎沒有接口,並且我假設標頭param上沒有任何文檔,該怎么辦? 。
有人可以向我弄錯的那一堆復雜的混亂情況有所啟發。
我不知道您是否仍然感興趣,但是以防萬一有人偶然發現了這個問題,希望得到答案。
我們將https://github.com/stomp-php/stomp-php/用於我們的Stomp連接,這大致就是我們創建客戶端的方式:
function createClient($broker_url, $login, $password) {
$client = new \Stomp\Client($broker_url);
$sslContext = [
'ssl' => [
'cafile' => '/path/to/cert',
'verify_peer' => true,
'verify_peer_name' => false,
'ciphers' => 'HIGH',
],
];
$client->getConnection()->setContext($sslContext);
$client->setLogin($login, $password);
$client->connect();
return new \Stomp\StatefulStomp($client);
}
$ broker_url的格式應為ssl://host:port
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.