Ну, вот и подошло время обновления софта для работы с центрами сертификации, ключами, сертификатами и пр. PKI, короче. Основной рабочий документ на сегодня – инструкция по обновлению с официального сайта.
Я храню софт с указанием версии и использую символическую ссылку на нужную мне версию. Так что, не забывать проверять, куда указывают ссылки!
- Качаем дистрибутив. Ссылка для wget получается кривая. У меня она выглядит так (переименовываем):
http://downloads.sourceforge.net/project/ejbca/ejbca6/ejbca_6_0_4/ejbca_ce_6_0_4.zip?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fejbca%2F&ts=1394722137&use_mirror=optimate
- Копируем оба каталога: с сервером приложений и со старой версией ejbca. Также копируем дамп базы.
- Проверяем по инструкции “компатибабельность” сервера приложений.
- Открываем из нового дистрибутива файл doc/upgrade . Раздел From 5.0.X to 6.0.X – там есть примечание для нашей, четвёртой версии.
- Копируем конфиги из старой версии в новую.
- Из раздела Application servers инструкции с сайта:
- JBoss 5 and OracleJVM bug – мне это надо: you need to copy EJBCA_HOME/lib/bc*.jar to JBOSS_HOME/server/default/lib/
- JBoss Service Timer persistence – тоже. Почему этого не было в EJBCA 4 я уже сейчас и не помню.
- Проверяем символические ссылки, переменные окружения (JBOSS_HOME , ANT_HOME , EJBCA_HOME , PATH , JAVA_HOME , APPSRV_HOME)
- Запускаем ant deploy от имени пользователя, сделанного для ejbca из каталога $EJBCA_HOME .
BUILD FAILED
XXX/ejbca_ce_6_0_4/build.xml:25: The following error occurred while executing this line:
XXX/ejbca_ce_6_0_4/removed.xml:44: The property "ca.keystorepass" has been moved from "ejbca.properties" to "cesecore.properties".
- Фигня, переносим параметр (ca.keystorepass) и запускаем ещё раз.
- Куча ошибок, которые не совсем ошибки (This is normally not an error) 🙂 , а в конце заветное: BUILD SUCCESSFUL
- Ручки дрожат, а запустить сервер приложений надо именно сейчас. Ну, запустим и посмотрим в логи… …SVNTag=JBoss_XXX… Started in 40s:226ms – мдя, не быстро. Ну, хоть стартанул.
- Запускаем ant upgrade, как сказано в doc/UPGRADE в разделе From 4 to 5, на который ссылается раздел From 5.0.X to 6.0.X 🙂
- Тадам! Пам-пам! Такого я давно не видел… Она у меня спрашивает, с какой версии я обновляюсь! Афигеть! Ладно, пишем, как в шаблоне 4.0.x
- Выдало java.lang.NullPointerException , но в результате то опять BUILD SUCCESSFUL . Рискнем пойти дальше.
- ant post-upgrade -отработало. Заходим в админку. Что такое? Версия осталась 4.
Опущу все маты и ковыряния с версиями java. Сухой остаток:
- Для jboss можно использовать только сервер с названием default . Это потому, что ejbca не умеет (я не нашёл) делать deploy в другой Instance. Соответственно, я сделал ссылку default -> ejbca
- jboss 5.1.0.GA +openjdk (6,7) +ejbca работать не желают.
- В каталоге jboss/server/default/lib должны остаться библиотеки:
- bcmail-jdk16-145.jar
- bcprov-jdk15on-149.jar
- mysql-connector-java-5.1.12-bin.jar
- bcpkix-jdk15on-149.jar
- bctsp-jdk16-145.jar .
- А вот библиотеку bcprov-jdk16-145.jar надо удалить. Иначе, при запуске jboss, загрузка прерывается с сообщением:
Caused by: java.lang.VerifyError: class org.bouncycastle.asn1.ASN1Primitive overrides final method equals.(Ljava/lang/Object;)Z
Deployment "vfszip:XXX/jboss-5.1.0.GA/server/ejbca/deploy/ejbca.ear/" is in error due to the following reason(s): java.lang.VerifyError: class org.bouncycastle.asn1.ASN1Primitive overrides final method equals.(Ljava/lang/Object;)Z
- Последовательность действий
- Останавливаем jboss
- ant clean deploy
- Чистим server/defalut/work и там же tmp – полностью.
- Старт jboss . Дождаться загрузки по логу!!!
- ant upgrade
- ant post-upgrade
- Останавливаем jboss
- Чистим server/defalut/work и там же tmp – полностью.
- Старт jboss . Дождаться загрузки по логу!!!
- Всё…
Короче, процесс не для слабонервных. Но, вроде работает. OCSP пашет, админка тоже, crl генерятся. Сертификаты проверю чуть позже.
Вывод – следующий upgrade надо делать на чистый сервер приложений. Чувствую, развлекуха будет та ещё…
One Reply to “обновляем EJBCA 4.0.X до EJBCA 6”