Исправленный код проверяет, что ключ и сертификат найдены, и отправляет соответствующие ошибки:

отаю над более старой версией IBM iSeries (IBM-i, i5OS, AS / 400 и т. Д.) С Java 5 JVM (Classic, а не ITJ J9) в O / S версии V5R3M0.

Вот сценарий в двух словах:

Я создал хранилище ключей типа JKS, используяPortecle 1.7 (Примечание. Я пытался преобразовать хранилище ключей в JCEKS, но оно было отклонено как неподдерживаемый формат, поэтому кажется, что JKS - единственный вариант на компьютере iSeries (по крайней мере, в той версии, на которой я работаю).Затем я создал пару ключей и CSR и отправил CSR в Thawte для подписи.Я успешно импортировал подписанный сертификат из Thawte, используя формат PKCS # 7, чтобы импортировать всю цепочку сертификатов, включая мой сертификат, посредника Thawte и корневой каталог сервера Thawte.

Это все работало, как и ожидалось.

Однако, когда я запустил JVM, настроенный должным образом, чтобы указать на хранилище и предоставить его пароль (что я делал в прошлом с самоподписанными сертификатами, созданными в Portecle для тестирования), и попытался запустить свой веб-сервер на 443, Я получаю следующее исключение безопасности:

java.security.KeyStoreException: Cannot store non-PrivateKeys

Может кто-нибудь сказать мне, где я ошибся, или что я должен проверить дальше?