Нет доступной реализации X509TrustManager [SOAP Node IIB 10] - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь использовать узел запроса мыла с ssl ws, в моем случае я загрузил сертификат .cer в папку (E: \ truststore), и я попытался подумать:

mqsireportproperties integrationNodeName -o ComIbmJVMManager -a -e integration_server

mqsichangeproperties integrationNodeName -e integration_server -o ComIbmJVMManager -n truststoreFile -v E:\truststore

mqsichangeproperties integrationNodeName -e integration_server -o ComIbmJVMManager -n truststorePass -v integration_server::truststorePass

mqsisetdbparms IIBOAB -n integration_server::truststorePass -u na -p password

но у меня есть эта ошибка:

Текст: ХАРАКТЕР: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: нет X509TrustManager доступна реализация

Не могли бы вы помочь мне, спасибо

1 Ответ

0 голосов
/ 18 апреля 2019

У вашей проблемы может быть несколько причин, поэтому я постараюсь повторить здесь все:

В вашей команде для установки хранилища ключей не указываются имена хранилищ ключей / доверенных сертификатов.Кроме того, по моим воспоминаниям вы должны установить его в BrokerRegistry, а не в ComIbmJVMManager (но это может сработать). Пример допустимых команд:

mqsichangeproperties $BROKERNAME -o BrokerRegistry -n brokerKeystoreFile -v $KEYSTORE_iib_PATH/iib.jks
mqsichangeproperties $BROKERNAME -o BrokerRegistry -n brokerTruststoreFile -v $KEYSTORE_iibTrust_PATH/iibTrust.jks
mqsisetdbparms $BROKERNAME -n brokerTruststore::password -u $KEYSTORE_USER -p $KEYSTORE_PASSWORD
mqsisetdbparms $BROKERNAME -n brokerKeystore::password -u $KEYSTORE_USER-p $KEYSTORE_PASSWORD

Кроме того, вам также могут понадобиться следующие команды для:прослушиватель http:

mqsichangeproperties $BROKERNAME -b httplistener -o HTTPListener -n enableSSLConnector -v true
mqsichangeproperties $BROKERNAME -b httplistener -o HTTPSConnector -n keystoreFile -v $KEYSTORE_iib_PATH/iib.jks
mqsichangeproperties $BROKERNAME -b httplistener -o HTTPSConnector -n truststoreFile -v $KEYSTORE_iibTrust_PATH/iibTrust.jks
mqsichangeproperties $BROKERNAME -b httplistener -o HTTPSConnector -n keystorePass -v $KEYSTORE_PASSWORD
mqsichangeproperties $BROKERNAME -b httplistener -o HTTPListener  -n startListener -v true

Это для части шины интеграции.Ваша вторая ошибка (и, вероятно, самая большая) заключается в том, что вы не знаете, что такое хранилище ключей / trustore.Помещение сертификата в хранилище НЕ является хранилищем ключей.(Найдите немного о JKS: хранилище ключей Java)

Вы можете сделать следующее для создания хранилища доверенных сертификатов / хранилища ключей в Unix:

keystoreName=iibTrust.jks
KEYSTORE_PASSWORD=123qwerty ## DO NOT USE THAT PLEASE
for certificate in `ls *.cer`;
do
    alias=`echo $certificate | rev | cut -d '.' -f 2- | rev | cut -d '_' -f2`
    keytool -importcert -file $certificate -keystore ${keystoreName}.jks -alias $alias -storepass $KEYSTORE_PASSWORD -noprompt
    if [[ $? -ne 0 ]]; then "Unable to add $certificate in keystore $keystoreName.jks";
done    
keytool -list -keystore ${keystoreName}.jks -storepass $KEYSTORE_PASSWORD

Я в основном скопировал / вставил все свои скриптычтобы разрешить SSL на IIB, так что со всей этой информацией вы сможете заставить его работать.

...