Получить сертификат с сервера (Java-код)

Я хочу получить сертификат с сервера в Linux, но я не хочу использовать команды openssl в терминале. Я хочу реализовать это в своем java-проекте, где я хочу подключиться к защищенному TLS-серверу POP3S. Мне удалось подключиться с помощью: openssl s_client -connect [host]:[port|443] < /dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > [host].crt, а затем я добавил этот сертификат к своим доверенным с помощью keytool -import -noprompt -trustcacerts -alias <AliasName> -file <certificate> -keystore <KeystoreFile> -storepass <Password>, и он работает. Могу ли я добиться этого с помощью кода (если да, КАК?)? С этим вопросом все иначе Как получить цепочку сертификатов сервера, а затем проверить ее действительность и надежность в Java, потому что мне нужно получить сертификат с локального сервера POP3S (защищенного с помощью TLS)


person bogdan bogdan    schedule 05.04.2017    source источник
comment
Для не-HTTPS вы, вероятно, используете SSLSocketFactory, чтобы создать SSLSocket , затем вы можете вызвать getSession(), чтобы получить _ 4_, где вы можете вызвать getPeerCertificates(), чтобы получить _ 6_, который вам нужен.   -  person Andreas    schedule 05.04.2017
comment
Дубликат JAVA: извлечение сертификатов сервера   -  person Andreas    schedule 05.04.2017