Найти в Дзене
IT life

Обновление сертификата Oracle Opera PMS

Работаю в сетевом отеле, с момента открытия Opera PMS крутилась на самоподписанном сертификате. Бренд на прошлой неделе потребовал заменить на нормальный публичный сертификат от авторизованного центра сертификации с формулировкой "...provider is a company such as, Network Solutions, DigiCert, GoDaddy or a similar public authority, then the SSL certificate is considered public. " Сразу скажу, что сертификат вовремя не заменил по ряду причин и опера перестала работать: нельзя создавать брони, не работает lookup и всё что связано с запросами к бренду. Предистория Подрядчик по сопровождению продуктов Oracle в РФ вовремя помочь не смог (все мы знаем о ком речь), пришлось искать самостоятельно. Нашёл пост на реддите, но его затёрли. Причём автор написал что Оракл в США берёт за это $150/час. В итоге пост восстановил с помощью WebArchive и скомпилировал из поста и комментов правильный порядок действий. Мне это стоило двух полных дней кропотливых тестов и чтения документации. Подготовка Теперь
Оглавление

Работаю в сетевом отеле, с момента открытия Opera PMS крутилась на самоподписанном сертификате. Бренд на прошлой неделе потребовал заменить на нормальный публичный сертификат от авторизованного центра сертификации с формулировкой "...provider is a company such as, Network Solutions, DigiCert, GoDaddy or a similar public authority, then the SSL certificate is considered public. "

Сразу скажу, что сертификат вовремя не заменил по ряду причин и опера перестала работать: нельзя создавать брони, не работает lookup и всё что связано с запросами к бренду.

Предистория

Подрядчик по сопровождению продуктов Oracle в РФ вовремя помочь не смог (все мы знаем о ком речь), пришлось искать самостоятельно. Нашёл пост на реддите, но его затёрли. Причём автор написал что Оракл в США берёт за это $150/час.

В итоге пост восстановил с помощью WebArchive и скомпилировал из поста и комментов правильный порядок действий. Мне это стоило двух полных дней кропотливых тестов и чтения документации.

Подготовка

Теперь к решению проблемы: сначала необходимо провести подготовительные процедуры и сформировать файл запроса сертификата.

Прежде всего вам потребуется пароль от WebLogic - это админский пароль для управления централизованной системой развёртывания JAVA-приложений, коим и является опера.

На сервере Opera PMS в консоли cmd выполняем команды, предварительно изменив поля:

CN=FQDN имя сервера оперы

O= (Наименование компании)

C=(страна)

ST=(штат/область)

L=(город)

[WEBLOGIC pass] = пароль Weblogic. Его можете узнать у компании установщика.

%JAVA_HOME%\bin\keytool.exe -genkey -keyalg RSA -dname "CN=opera.ru, O=Hotel, C=RU, ST=MSK, L=Moscow" -alias V5MACHINE -keypass [WEBLOGIC pass] -keystore D:\micros\opera\security\new\V5MACHINE.jks -storepass [WEBLOGIC pass] -validity 1461 -keysize 2048

Сформируется файл D:\micros\opera\security\new\V5MACHINE.jks - там сохранён приватный ключ в хранилище для JAVA-приложений. Теперь на основе него сформируем файл запроса сертификата:

%JAVA_HOME%\bin\keytool.exe -certreq -v -alias V5MACHINE -file D:\micros\opera\security\new\V5MACHINE.csr -keypass [WEBLOGIC pass] -storepass [WEBLOGIC pass] -keystore D:\micros\opera\security\new\V5MACHINE.jks

В результате сформируется файл запроса сертификата D:\micros\opera\security\new\V5MACHINE.csr. Его необходимо передать в CA для выпуска сертификата. Я обращался в Timeweb - очень отзывчивая техподдержка, для понимания: сделали мне сертификат в воскресенье в 23:30 хотя указано время работы с 9 до 18. Сертификат по цене 2000 ₽, выпустили AlphaSSL от GlobalSign. Запросите сразу промежуточный и корневой сертификаты.

После оплаты и выпуска сертификата мне прислали три сертификата: конечный, промежуточный и корневой.

Замена сертификатов

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

Сделайте бэкап папок:

D:\ORA\JDK\jre\lib\security
D:\MICROS\opera\security
D:\MICROS\wallets

Удалите всё в папках D:\MICROS\opera\security и D:\MICROS\wallets - их пересоздадим.

Для начала сохраните сертификаты, создайте текстовые документы для каждого с расширением .crt и вставьте внутрь текст начиная с "-----BEGIN CERTIFICATE-----" и заканчивая "-----END CERTIFICATE-----".

Получится три файла: opera5.crt (конечный серт), roota.crt (промежуточный серт) и rootmain.crt (корневой сертификат).

Далее необходимо перевести сертификаты в формат .cer, для этого открываем сертификат и на вкладке Details:

-2

Далее указать имя файла и сохранить.

Открываем сертификат opera5.cer и выделяем цепочку сертификатов :

-3

Получите файл формата .p7b (у меня это leaf.p7b), всё это копируем на сервер в папку D:\MICROS\OPERA\security

Импорт сертификатов в хранилище

Промежуточный сертификат:

%java_home%\jre\bin\keytool -importcert -file D:\micros\opera\security\roota.cer -alias roota -keystore D:\micros\opera\security\V5MACHINE.jks -storepass [WEBLOGIC pass] -storetype JKS -noprompt

Корневой сертификат:

%java_home%\jre\bin\keytool -importcert -file D:\micros\opera\security\rootmain.cer -alias rootb -keystore D:\micros\opera\security\V5MACHINE.jks -storepass [WEBLOGIC pass] -storetype JKS -noprompt

Цепочка сертификатов:

%java_home%\jre\bin\keytool -importcert -alias v5machine -file D:\micros\opera\security\leaf.p7b -keystore D:\micros\opera\security\V5MACHINE.jks -storepass [WEBLOGIC pass] -storetype JKS -noprompt

Пересоздаём wallet

D:\ora\mwfr\oracle_common\bin\orapki.BAT wallet create -wallet D:\micros\wallets -pwd [WEBLOGIC pass] -auto_login

И импортируем в него ключи из сформированного хранилища

D:\ora\mwfr\oracle_common\bin\orapki.BAT wallet jks_to_pkcs12 -wallet D:\MICROS\wallets -pwd [WEBLOGIC pass] -keystore D:\MICROS\OPERA\security/V5MACHINE.jks -jkspwd [WEBLOGIC pass]

Обновляем cacerts

Удаляем старый сертификат иначе не даст добавить новый

D:\ora\JDK\jre\bin\keytool.exe -delete -keystore D:\ora\JDK\jre\lib\security\cacerts -alias v5machine -storepass [WEBLOGIC pass] -noprompt

Добавляем новый

%java_home%\jre\bin\keytool -importcert -file D:\micros\opera\security\opera5.crt -alias V5MACHINE -keystore cacerts -storepass [WEBLOGIC pass] -storetype JKS -noprompt

Можно предупредить ресепшн, что опера отвалится на 15 мин и рестартануть службы через Weblogic, если умеете. Или просто ребутнуть сервер.

После запуска всех служб Opera PMS должна начать открываться уже с новым сертификатом.