Нет доступной реализации X509TrustManager [SOAP Node IIB 10]

Я пытаюсь использовать узел запроса мыла с 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

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

Текст: CHARACTER: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: нет доступной реализации X509TrustManager

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


person ben salah Oussama    schedule 10.04.2019    source источник


Ответы (1)


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

В вашей команде для установки хранилища ключей не указаны имена хранилища ключей/доверенных сертификатов. Кроме того, насколько я помню, вы должны установить его в 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

Это все, что касается части интеграционной шины. Ваша вторая ошибка (и, вероятно, самая большая) заключается в том, что вы не знаете, что такое хранилище ключей/доверительное хранилище. Помещение сертификата в репозиторий НЕ ЯВЛЯЕТСЯ хранилищем ключей. (Поищите немного о 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, поэтому со всей этой информацией вы сможете заставить его работать.

person jdel    schedule 18.04.2019