В SoapUI 5.1.3 я установил хранилище ключей C: \ ccc_acp.keystore в настройках> Настройки SSL, то я могу подключиться к целевой сервер HTTPS.
Moment пожалуйста. Является ли это KeyStore, то есть содержит закрытые ключи или просто доверенное хранилище, то есть просто содержит доверенные сертификаты? Или спросить другой способ, является ли сервер самозаверяющим сертификатом?
Затем я запускаю следующую команду в C: \ Program Files \ Java \ jdk1.6.не 0_38 \ JRE \ Lib \ безопасность>
keytool -importkeystore -srckeystore C:\ccc_acp.keystore -destkeystore .\cacerts
нет какой-либо ошибки и Keytool вернуть
Import command completed: 2 entries successfully imported, 0 entries failed or cancelled
Любопытный, что нужно сделать, если это не является доверенное хранилище, а не KeyStore, и сервер использует самозаверяющий сертификат. Вы должны сказать нам, что.
затем в SoapUI 5.1.3, я установил хранилище ключей C: \ Program Files \ Java \ jdk1.6.0_38 \ JRE \ Lib \ безопасность \ cacerts, но при подключении к одному серверу по протоколу HTTPS, его return SSLHandshakeException: Получено фатальное предупреждение: handshake_failure.
Вам необходимо предоставить дополнительную информацию. Вся трассировка стека, для начала, предпочтительно выход, созданный установкой -Djavax.net.debug=SSL,handshake
Почему это произойдет?
Невозможно сказать без дополнительной информации, упомянутой выше.
И на самом деле я чувствую себя потерянным в терминах, когда сказал cert., Это означает открытый ключ? или закрытый ключ? или оба?
Ни то, ни другое. Сертификат является идентифицирующей оболочкой для открытого ключа, либо подписанным, либо подписанным кем-то другим.
Могу ли я импортировать закрытый ключ в cacerts?
Вы не хотите. Файл cacerts - это, прежде всего, не KeyStore. См. Выше.
При выполнении команды keytoool
keytool -list -v -keystore .\cacerts
я вижу запись с
Entry type: PrivateKeyEntry
это указать, что это закрытый ключ?
Конечно, да. Это также указывает на то, что вы начали с KeyStore, а не из магазина доверия, как обсуждалось выше.
Итак, все, что вы сделали до сих пор, было полностью недействительным.
Вам необходимо указать исходный файл, который вы начали с KeyStore, оставьте хранилище доверия по умолчанию, которое является файлом cacerts, поставляемым с JRE, а не подделанным вами, и попробуйте все снова, без каких-либо изменений от ключевого инструмента вообще.
и запись с
Entry type: trustedCertEntry
это указывают, что это открытый ключ?
Нет, это означает, что это надежный сертификат.
TrustedCert означает только открытый ключ?
Нет, см. Выше.
жаль, что я не знаком с SSL.
Очень новый. Я не знаю, что вы читали, или где у вас есть вся эта глупость, но все это совершенно неправильно. Я предлагаю вам забыть все и начать снова, внимательно прочитав Справочное руководство JSSE.
У '. \ Cacerts' есть дополнительные записи, поверх двух, которые вы импортировали? сравните 'keytool -list -v -keystore. \ cacerts' с' keytool list -v -keystore C: \ ccc_acp.keystore' – icedtrees