Мар 142014
 

Ну, вот и подошло время обновления софта для работы с центрами сертификации, ключами, сертификатами и пр. 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 надо делать на чистый сервер приложений. Чувствую, развлекуха будет та ещё…

 

  Один комментарий в “обновляем EJBCA 4.0.X до EJBCA 6”

  1. […] надо проверить работу с сертификатами после вчерашнего обновления .  Сначала возьмём встроенный CA – CN=SuperAdmin,O=EJBCA admin,C=RU . […]