WSO2 API manager включает SSL для Message Broker с шифрованием пароля - PullRequest
0 голосов
/ 01 мая 2020

Мы работаем с менеджером API WSO2 версии 6.5.0 на блоках RHEL 7.

В настоящее время мы работаем над усилением безопасности установки. У нас есть комплексное развертывание, поэтому все функции находятся в одном профиле. (Message Broker, API Gateway, Traffi c Manager et c.)

Мы хотим защитить трафик c от и к Message Broker - это то, что мы можем заставить работать - и желательно шифровать все пароли, необходимые для этой конфигурации.

Но мы не можем заставить эту конфигурацию работать с шифрованием ciphertool. См. Ниже фрагменты для нашей конфигурации.

FILE broker.xml
           <sslConnection enabled="true" port="8672">
                <keyStore>
                     <location>/opt/wso2/apim/wso2am-2.6.0/repository/resources/security/wso2-internal.jks</location>
                     <password>ddddddd</password>
                     <certType>SunX509</certType>
                </keyStore>
                <trustStore>
                    <location>/opt/wso2/apim/wso2am-2.6.0/repository/resources/security/client-truststore.jks</location>
                    <password>ddddddd</password>
                    <certType>SunX509</certType>
                </trustStore>
            </sslConnection>
!FILE

FILE api-manager.xml
<connectionfactory.TopicConnectionFactory>amqp://admin:aaaa@clientid/carbon?brokerlist='tcp://server.acme.org:8672?ssl='true'%26trust_store='/opt/wso2/apim/wso2am-2.6.0/repository/resources/security/client-truststore.jks'%26trust_store_password='ddddddd''</connectionfactory.TopicConnectionFactory>
!FILE

FILE jndi.properties
connectionfactory.TopicConnectionFactory = amqp://admin:aaaa@clientid/carbon?brokerlist='tcp://server.acme.org:8672?ssl='true'&trust_store='/opt/wso2/apim/wso2am-2.6.0/repository/resources/security/client-truststore.jks'&trust_store_password='ddddddd''

connectionfactory.QueueConnectionFactory = amqp://admin:aaaaaa@clientid/carbon?brokerlist='tcp://server.acme.org:8672?ssl='true'&trust_store='/opt/wso2/apim/wso2am-2.6.0/repository/resources/security/client-truststore.jks'&trust_store_password='ddddddd''
!FILE

Все это ломается, когда мы хотим зашифровать его с помощью ciphertool. Мы сузили проблему до брокера. xml шифрование. Как только мы зашифруем этот файл, wso2carbon.log выдает ошибки использования при тестировании политики регулирования. Сами записи корректно шифруются после запуска инструмента шифрования, мы видим ссылки secretAlias ​​в брокере. xml теги пароля.

ERROR {org.wso2.andes.transport.network.mina.MinaNetworkHandler} - Исключительная ситуация, обнаруженная Mina, но без обработчика протокола для ее обработки {org.wso2.andes.transport.network.mina.MinaNetworkHandler} java .io.IOException: подделка хранилища ключей или неверный пароль "Причина: java .security.UnrecoverableKeyException: проверка пароля не удалась ""

Эти две записи в cipher-tool.properties, относящиеся к брокеру. xml предоставляются для установки по умолчанию.

Broker.KeyStore.Pass = repository / conf / broker.xml // transports / amqp / sslConnection / keyStore / password, false

Broker.trustStore.Pass = repository / conf / broker.xml // transports / amqp / sslConnection / trustStore / пароль, false

То есть кто-нибудь может подтвердить, если эти переменные: Broker.trustStore.Pass и Broker.KeyStore.Pass являются правильными именами? Мы нашли похожие случаи, когда имена этих переменных не были правильными во всех разделениях, если они не были в том же буквенном регистре, что и код WSO2? К сожалению, нигде в документации WSO2 не указаны правильные имена переменных.

Спасибо.

...