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

Как мне настроить Tomcat с SSL на iSeries?

OS / 400 - это версия V5R4, в системе установлена ​​Java 1.6, и мы используем Tomcat 5.5, но нам трудно заставить Tomcat работать с HTTPS.

Мы создали самозаверяющий сертификат и раскомментировали основные разделы файла server.xml, изменив параметры так, чтобы они указывали на сертификат (который, я полагаю, должен находиться в / QOpenSys). HTTP работает, а HTTPS - нет, поэтому что-то не так, скорее всего, с конфигурацией server.xml.

После долгого поиска в Google мы обнаружили следующее:

Во-первых, убедитесь, что ваша переменная окружения JAVA_HOME установлена:

WRKENVVAR LEVEL(*SYS)
WRKENVVAR LEVEL(*JOB)

Если JAVA_HOME не установлен, добавьте переменную окружения, указывающую на ваш путь Java. В моем случае:

JAVA_HOME = '/QOpenSys/QIBM/ProdData/JavaVM/jdk60/32bit'

Если у вас уже есть собственный сертификат, используйте его; в противном случае сгенерируйте самозаверяющий сертификат, например:

$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /QOpenSys/usr/local/ssl/test.crt

(Замените test.crt тем, что вы хотите назвать своим сертификатом, следуйте подсказкам)

Используя WRKLNK, перейдите в папку conf каталога установки Tomcat. Отредактируйте server.xml, раскомментируйте и измените следующий раздел:

<Connector port="8443" maxThreads="150" minSpareThreads="25"
maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https" secure="true" clientAuth="false" 
sslProtocol="TLS" keystoreFile="/QOpenSys/usr/local/ssl/test.crt" 
algorithm="IbmX509" />

Боковое примечание: нам не хватало тега algorithm = "IbmX509", поэтому наши предыдущие попытки потерпели неудачу.

Используя QSH, перейдите в папку bin вашего установочного каталога Tomcat. Запустите Tomcat:

./startup.sh

Откройте браузер и попробуйте:

https://1.1.1.1:8443/

Вы получите предупреждение, если используете самозаверяющий сертификат.

Если все работает по плану, вернитесь к server.xml и отключите доступ по протоколу http (если вы хотите ограничить доступ по протоколу https).