Установка SSL сертификатов в Java

При попытке установить https соединение с помощью клиента, написанного на Java видим вот такое примерно сообщение (если сертификат сервера самоподписанный):

unable to find valid certification path to requested target


Воспользуемся небольшим кодом на Java, который значительно облегчит установку сертификата. Скачиваем InstallCert.java отсюда.

Т.к. я использую красноглазный-gentoo-подобный дистрибутив, управление различными версиями JRE и JDK в нем осуществляется приятной утилитой java-config.

Просмотрим, что у нас установлено:

java-config --list-available-vms

The following VMs are available for generation-2:
1)	Sun JDK 1.6.0.24 [sun-jdk-1.6]
*)	Sun JRE 1.6.0.24 [sun-jre-bin-1.6]


Нам понадобится именно JDK, т.к. .java файл необходимо откомпилировать в .class. Устанавливаем по-умолчанию для пользователя JDK. В этом мощь данной утилиты — версий JRE и JDK может быть установлено сколько угодно, каждому пользователю можно просто назначить используемую версию JRE или JDK:

java-config --set-user-vm=sun-jdk-1.6


Now using sun-jdk-1.6 as your user JVM


Проверяем, доступна ли теперь утилита для компиляции javac:

java-config --javac


/opt/sun-jdk-1.6.0.24/bin/javac


Компилируем .java файл в .class:

javac ./InstallCert.java


Запускаем, указав в качестве аргумента имя хоста и порт или ip адрес:

java InstallCert xx.xx.xx.xx:443


...

Added certificate to keystore /opt/sun-jre-bin-1.6.0.24/lib/security/cacerts using alias 'xx.xx.xx.xx-1'


Вуаля.

Комментарии (0)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.