Назад | Перейти на главную страницу

Хранилище ключей Java не может проверить URL

С тем же URL-адресом это приводит к подтверждению кода возврата 20 (невозможно получить локального эмитента сертификата):

openssl s_client -connect $URL:443 -showcerts -CAfile /etc/ssl/certs/java/cacerts

Это дает проверочный код возврата 0:

openssl s_client -connect $URL:443 -showcerts -CApath /etc/ssl/certs

Так же как и ... -CAfile /etc/ssl/certs/Thawte_Premium_Server_CA.pem.

Но этот сертификат уже в хранилище ключей Java. Мне нужно иметь доступ к URL-адресу из Java-land, и я не могу понять, что происходит. Я полный n00b здесь, поэтому любая помощь будет оценена.

Файл cacerts представляет собой хранилище ключей в формате JKS, которое OpenSSL не поддерживает (это стандартный формат хранилища ключей для Java, но обычно не поддерживается утилитами, отличными от Java).

Если вы хотите использовать openssl s_client с сертификатами из этого хранилища ключей, вы можете извлечь их в удобную форму с помощью

keytool -list -rfc -keystore /etc/ssl/certs/java/cacerts > cacerts.pem

(пароль по умолчанию для файла cacerts - «changeit», но если вы просто хотите увидеть общедоступные сертификаты, вы можете просто ввести пустой пароль, и все будет в порядке)