使用具有单独网关实例(外部和内部)的wso2am 2.2.0。似乎网关正在通过jms队列(端口5672)发布流量/限制信息。
是否可以为网关和流量管理器之间的jms流量配置TLS?
原因-网关之一将驻留在dmz中,并且要求在dmz中进行端到端加密。 Thrift通信也不使用TLS,但至少要通过TLS进行身份验证。虽然我很害怕(管理员用户的)JMS凭证被发送为纯文本
答案 0 :(得分:0)
TLS
或ssl
连接是打开的。代理使用的ssl
端口是8672
。在文件TRAFFIC_MANAGER_HOME / repository / conf / broker.xml中的传输部分下进行配置,如下所示。
<sslConnection enabled="true" port="8672">
<keyStore>
<location>repository/resources/security/wso2carbon.jks</location>
<password>wso2carbon</password>
<certType>SunX509</certType>
</keyStore>
<trustStore>
<location>repository/resources/security/client-truststore.jks</location>
<password>wso2carbon</password>
<certType>SunX509</certType>
</trustStore>
</sslConnection>
您可以通过如下所示验证流量管理器节点的启动日志来验证ssl
端口是否也被打开。
[2018-10-12 16:00:00,155] INFO - AndesContextInformationManager Queue Sync [create]: deadletterchannel
[Broker] BRK-1002 : Starting : Listening on TCP port 5672
[2018-10-12 16:00:00,157] INFO - listening [Broker] BRK-1002 : Starting : Listening on TCP port 5672
[2018-10-12 16:00:00,158] WARN - InboundDBSyncRequestEvent Recovering node. Adding binding [Binding]E=amq.dlc/Q=deadletterchannel/RK=deadletterchannel/D=true/EX=false
[2018-10-12 16:00:00,159] INFO - AndesContextInformationManager Binding Sync [create]: [Binding]E=amq.dlc/Q=deadletterchannel/RK=deadletterchannel/D=true/EX=false
[Broker] BRK-1002 : Starting : Listening on TCP/SSL port 8672
[2018-10-12 16:00:00,161] INFO - listening [Broker] BRK-1002 : Starting : Listening on TCP/SSL port 8672
[Broker] BRK-1004 : Qpid Broker Ready
在确认这一点之后,您必须在网关节点中放置正确的主机,端口值,以将JMS连接到流量管理器节点。可以使用网关节点中的jndi.properties文件配置该文件,该文件位于API_GATEWAY_HOME / repository / conf /下。在这里,您必须使用ssl
配置来更改代理URL。由ssl
配置的代理URL
的示例如下所示
connectionfactory.TopicConnectionFactory = amqp://<USERNAME>:<PASSWORD>@clientid/carbon?brokerlist='tcp://<Traffice-Manager-IP>:8672?ssl='true'&ssl_cert_alias='<CERTIFICATE_ALIAS_IN_TRUSTSTORE>'&trust_store=' <PATH_TO_TRUST_STORE>'&trust_store_password='<TRUSTSTORE_PASSWORD>'& key_store='<PATH_TO_KEY_STORE>'&key_store_password='<KEYSTORE_PASSWOR D>'';