YandexDirect

12 сентября 2013

Как создать Oracle Wallet с помощью orapki

Недавно возникла необходимость сделать доступ к приложению на Apexe через SSL сертификаты, в данном случае это было приложение РМССП(рабочее место службы поддержки). Кошелек для сертификатов было решено создать при помощи оракловой утилиты orapki. Я покажу вам как я это делал, т.к. с существующими дистрибутивами у меня ушло порядка 2 дней на то, чтобы разобраться со всем этим добром. Итак, начнем с того что имеем:
ОС - HP-UX B.11.31
в качестве HTTP сервера я использовал Oracle® Web Tier 11g (11.1.1.7.0), т.к. данный продукт в полной мере подходил под мои нужды. Сразу оговорюсь, в данный дистрибутив не входит утилита orapki, поэтому вам придется устанавливать ее отдельно.


Создаем серверный кошелек: 
mkdir /oracle/Apache/Oracle_WT1/server_wallet
cd /oracle/Apache/Oracle_WT1/server_wallet

--создаем кошелек:
orapki wallet create -wallet /oracle/Apache/Oracle_WT1/server_wallet -auto_login -pwd Password1

--головной выдаем сами 
orapki wallet add -wallet /oracle/Apache/Oracle_WT1/server_wallet -dn "CN=<IP>" -keysize 1024 -self_signed -validity 365 -pwd Password1

IP - указываем IP адрес к которому требуется доступ

--подложить корневой сертификат центра сертификации, в моем случае это НУЦ РК:
orapki wallet add -wallet /oracle/Apache/Oracle_WT1/server_wallet -trusted_cert -cert /oracle/Apache/Oracle_WT1/server_wallet/NCA_RSA.cer -pwd Password1

--экспортировать серверный сертификат для клиента
orapki wallet export -wallet /oracle/Apache/Oracle_WT1/server_wallet -dn "CN=IP" -cert /oracle/Apache/Oracle_WT1/server_wallet/server_ca.cert

Теперь создаем клиентский кошелек:
mkdir /oracle/Apache/Oracle_WT1/client_wallet
cd /oracle/Apache/Oracle_WT1/client_wallet

--создаем клиентский кошелек
orapki wallet create -wallet /oracle/Apache/Oracle_WT1/client_wallet -auto_login -pwd Password2

--подписать серверный сертификат клиенту
orapki wallet add -wallet /oracle/Apache/Oracle_WT1/client_wallet -trusted_cert -cert /oracle/Apache/Oracle_WT1/server_wallet/server_ca.cert -pwd Password2

--подписать клиентский сертификат серверу
orapki wallet add -wallet /oracle/Apache/Oracle_WT1/server_wallet -trusted_cert -cert /oracle/Apache/Oracle_WT1/client_wallet/client_ca.cert -pwd Password1

client_ca.cert - этот сертификат вы должны получить в НУЦ РК


--показывает информацию по сертификатам:
orapki wallet display -wallet /oracle/Apache/Oracle_WT1/server_wallet

после выполнения данной команды у меня следующая картина:

Requested Certificates: 
User Certificates:
Subject:        CN=<IP>
Trusted Certificates: 
Subject:        C=KZ,ST=??????,L=??????,O=???????????? ?????????????? ????? ?????????? ?????????,OU=?????????????? ???????? ??????,CN=??? ?? (RSA)
Subject:        OU=Class 2 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
Subject:        CN=<IP>
Subject:        OU=Class 3 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
Subject:        L=?????????,ST=?????????????? ???????,C=KZ,EmailAddress=user@mail.ru,2.5.4.42=???????,2.5.4.4=??????,CN=?????? ??????,SERIAL_NUM=IIN
Subject:        OU=Class 1 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
Subject:        CN=GTE CyberTrust Global Root,OU=GTE CyberTrust Solutions\, Inc.,O=GTE Corporation,C=US
Subject:        L=??????,ST=??????,C=KZ,EmailAddress=user2@MAIL.RU,2.5.4.42=???????????,2.5.4.4=???????????,CN=??????????? ??????,SERIAL_NUM=IIN


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

в файле /orahttp/ohs/conf/ssl.conf
Listen 4459 - порт который будет слушать сервер для SSL соединения
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:+HIGH:+MEDIUM:+LOW:+SSLv3:+SSLv2:TLSv1:+EXP
SSLWallet file:/oracle/Apache/Oracle_WT1/server_wallet
SSLVerifyClient require

в файле /orahttp/opmn/conf/opmn.xml
ВАЖНО: установить порты больше 6200
    <port local="6213" 
          remote="6300"
          request="6103"/>
    <ssl enabled="true" wallet-file="/oracle/Apache/Oracle_WT1/server_wallet"/>

Все, теперь устанавливаем файлы server_ca.cert, client_ca.cert на свой компьютер и пробуем подключаться к серверу по SSL порту.


Комментариев нет:

Отправить комментарий

Общее·количество·просмотров·страницы