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