为 WSO2AM 的 MB 配置 TLS
Configuring TLS for MB of WSO2AM
使用具有独立网关实例(外部和内部)的 wso2am 2.2.0。似乎网关正在通过 jms 队列(端口 5672)发布流量/限制信息。
有没有办法为网关和流量管理器之间的 jms 流量配置 TLS?
原因 - 其中一个网关将驻留在 dmz 中,并且需要在 dmz 中进行端到端加密。 Thrift 流量也不使用 TLS,但至少通过 TLS 进行身份验证。尽管我担心(管理员用户的)jms 凭据是明文发送的
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>'';
使用具有独立网关实例(外部和内部)的 wso2am 2.2.0。似乎网关正在通过 jms 队列(端口 5672)发布流量/限制信息。
有没有办法为网关和流量管理器之间的 jms 流量配置 TLS?
原因 - 其中一个网关将驻留在 dmz 中,并且需要在 dmz 中进行端到端加密。 Thrift 流量也不使用 TLS,但至少通过 TLS 进行身份验证。尽管我担心(管理员用户的)jms 凭据是明文发送的
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>'';