SSL

下一個有趣的安全性相關主題是使用 SSL 加密傳輸層。ActiveMQ 和 Artemis 都利用 JDK 的 Java Secure Socket Extension (JSSE),因此遷移應該很容易。

讓我們快速回顧一下 SSL 在 ActiveMQ 中的使用方式。首先,您需要定義 *SSL Context*。您可以使用 conf/activemq.xml 中的 <sslContext> 組態區段來執行此操作,例如:

<sslContext>
    <sslContext keyStore="file:${activemq.conf}/broker.ks" keyStorePassword="password"/>
</sslContext>

SSL 上下文定義了 broker 要使用的金鑰和信任儲存。完成此操作後,您可以使用 ssl schema 設定您的傳輸連接器,最好還有一些額外的選項。

<transportConnectors>
    <transportConnector name="ssl" uri="ssl://127.0.0.1:61617?transport.needClientAuth=true"/>
</transportConnectors>

這些選項與 SSLServerSocket 有關,並以 URL 參數形式指定,帶有 transport. 前綴,例如上面範例中顯示的 needClientAuth

在 Artemis 中,Netty 負責與傳輸層相關的所有事項,因此它也為我們處理 SSL。所有組態選項都直接在 acceptor 上設定,例如:

<acceptors>
    <acceptor name="netty-ssl-acceptor">tcp://127.0.0.1:61617?sslEnabled=true;keyStorePath=${data.dir}/../etc/broker.ks;keyStorePassword=password;needClientAuth=true</acceptor>
</acceptors>

請注意,我們使用了相同的 Netty 連接器 schema,並且僅添加了 sslEnabled=true 參數以將其與 SSL 一起使用。接下來,我們可以繼續定義金鑰和信任儲存。如下表所示,兩個 broker 之間的參數命名略有差異。

ActiveMQ Artemis
keyStore keyStorePath
keyStorePassword keyStorePassword
trustStore trustStorePath
trustStorePassword trustStorePassword

最後,您可以繼續設定您需要的所有其他 SSLServerSocket 參數 (例如此範例中的 needClientAuth)。在 Artemis 中,不需要額外的前綴。

請務必注意,您應該能夠重複使用現有的金鑰和信任儲存,只需將它們複製到新的 broker 即可。

個符合 "" 的搜尋結果

    沒有符合 "" 的搜尋結果