Установка 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'


Вуаля.

Sabayon, Gentoo: сборка gtk+ 2.20.1-r1

Распишу здесь пару проблем, возникших при сборке библиотеки gtk+ 2.20.1-r1.

1. Сообщение о том что нет файла cairo-pdf.h

checking cairo-pdf.h usability... no 
checking cairo-pdf.h presence... no 
checking for cairo-pdf.h... no 
configure: error: 
*** Can't find cairo-pdf.h. You must build Cairo with the pdf 
*** backend enabled. 


Для решения необходимо отредактировать /etc/portage/package.use:

x11-libs/cairo glitz svg png pdf gl -qt4


Я добавил флаги pdf svg gl. После сборки cairo (emerge cairo) и попытке сборки gtk+ сообщение может появляться вновь. Я в этом случае очищал /var/tmp.

2. Якобы нет библиотеки libGL.la

/bin/grep: /usr/lib/libGL.la: No such file or directory
/bin/sed: can't read /usr/lib/libGL.la: No such file or directory
libtool: link: `/usr/lib/libGL.la' is not a valid libtool archive


Решается так:

emerge lafilefixer; lafilefixer --justfixit


Надеюсь этот топик сэкономит кому-то время.
  • +4
  • 16 октября 2010, 16:48
  • Sergei_T
  • 1