нужен волшебный пендель подсказать направление.
Итак: Oracle12C на виртуальной машине Windows Server 2012 R2 DataCenter
Компутер в сети называется Oracle
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.htmlЕсть приложение на javа нужно выдать список инструкций всем блондинкам.
Перечитал весь форум, обнаружил есть 3! комплекта утилит создания сертификатов и бумажником не считая приложения Wallet, и масса полунамеков как это сделать.
Сам Oracle вообше радует перлами в своей пошаговой инструкции - типа откройте файл и сделайте так что бы оно работало.
Мой инструкция - помогите затрабелшутить - куда ийти, может еше кому поможет.
Основное задание мной понятое - на сервере и клиенте должен быть wallet, a в нем серфикат.
Внимание: Все приложения (включая cmd) нужно запускать AS ADMINISTRATOR !!! иначе начинаются проявлятся чудеса открытого ПО.
I. Создание сертификата - взял тут
http://habrahabr.ru/post/192446/Win64OpenSSL-1_0_2d.exe - Версия 0.9 не подходит.
cd c:\app
-- make root key (needs to be in a secure place)
openssl genrsa -out rootCA.key 2048
-- make a root cerificate (can distribute everywhere)
openssl req -x509 -new -key rootCA.key -days 1000 -out rootCA.crt
----- make cerificate signed by out key
-- generate a key
openssl genrsa -out WIN-KLATSFOED53.key 2048
-- make a request for certificate: common name must be domain: WIN-KLATSFOED53
openssl req -new -key WIN-KLATSFOED53.key -out WIN-KLATSFOED53.csr
-- sign up the certificate by root certificate
openssl x509 -req -in WIN-KLATSFOED53.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out WIN-KLATSFOED53.crt -days 500
Один момент непонятен - нужно ли кликнуть правым кликом на rootCA.crt и WIN-KLATSFOED53.crt - что бы его инсталлировать на клентской машине и на сервер?
И как ? на local mashine или для пользователя?
II. Создание Wallet
-- create wallet
orapki wallet create -wallet "c:\app\Oracle\Wallet" -pwd ric12345 -auto_login_local
-- sign wallet with certificate
orapki wallet add -wallet "c:\app\Oracle\Wallet" -pwd ric12345 -trusted_cert -cert c:\app\WIN-KLATSFOED53.crt
Дальше можно почитать пару ссылок, открыть Oracle Wallet что бы убедится что Wallet открывается и в нем виден наш сертификат.
https://docs.oracle.com/middleware/1213/wls/JDBCA/oraclewallet.htm#JDBCA601https://docs.oracle.com/database/121/DBSEG/asossl.htm#DBSEG9689-- Говорит базе где лежит Wallet
-- Create credential oracle.security.client.connect_string1
mkstore -wrl c:\app\Oracle\Wallet -createCredential "WIN-KLATSFOED53:1521/dmnx" system system
Что бы убедится что все работает, подключимся к базе:
cmd c:/> sqlplus system/system@127.0.0.1:1521/dmnx
SQL>select * from V$ENCRYPTION_WALLET;
Должен вернуть путь к нашему Wallet: c:\app\Oracle\Wallet
III. Настроить базу для работы с SSL (надеюсь теперь трафик будет криптоваться)
Согласно партийным документам нужно подправить 3 файла по адресу:
c:\app\Oracle\product\12.1.0\dbhome_1\NETWORK\ADMIN
-- listener.ora :
+ |
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C:\app\Oracle\product\12.1.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Oracle\product\12.1.0\dbhome_1\bin\oraclr12.dll") ) )
SSL_CLIENT_AUTHENTICATION = FALSE
WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = c:\app\Oracle\Wallet) ) )
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = WIN-KLATSFOED53.localdomain)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCPS)(HOST = WIN-KLATSFOED53.localdomain)(PORT = 2484)) ) )
|
-- sqlnet.ora :
+ |
SQLNET.AUTHENTICATION_SERVICES= (BEQ, TCPS, NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SSL_CLIENT_AUTHENTICATION = TRUE
WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = c:\app\Oracle\Wallet) ) ) |
-- sqlnet.ora :
+ |
DMNX = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = WIN-KLATSFOED53.localdomain)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = dmnx) ) )
DMNX_SSL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCPS)(HOST = WIN-KLATSFOED53.localdomain)(PORT = 2484)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = dmnx) ) )
ORACLR_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) ) |
Рестартуем лисенер:
LSNRCTL stop
LSNRCTL start
Все пока выглядит в ш0коладе
+ |
LSNRCTL for 64-bit Windows: Version 12.1.0.1.0 - Production on 27-OCT-2015 17:46 :23
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Starting tnslsnr: please wait...
TNSLSNR for 64-bit Windows: Version 12.1.0.1.0 - Production System parameter file is C:\app\Oracle\product\12.1.0\dbhome_1\network\admin \listener.ora Log messages written to C:\app\Konstantin\diag\tnslsnr\WIN-KLATSFOED53\listener\ alert\log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521 ipc))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=WIN-KLATSFOED53)(PORT=15 21))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=WIN-KLATSFOED53)(PORT=2 484)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for 64-bit Windows: Version 12.1.0.1.0 - Produ ction Start Date 27-OCT-2015 17:46:30 Uptime 0 days 0 hr. 0 min. 9 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File C:\app\Oracle\product\12.1.0\dbhome_1\network\admi n\listener.ora Listener Log File C:\app\Oracle\diag\tnslsnr\WIN-KLATSFOED53\listene r\alert\log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=WIN-KLATSFOED53)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=WIN-KLATSFOED53)(PORT=2484))) Services Summary... Service "CLRExtProc" has 1 instance(s). Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully
C:\app>
|
Пингуем c:\tnsping ricohdmnx
Пока все хорошо:
C:\app>tnsping dmnx
+ |
TNS Ping Utility for 64-bit Windows: Version 12.1.0.1.0 - Production on 27-OCT-2 015 17:53:21
Copyright (c) 1997, 2013, Oracle. All rights reserved.
Used parameter files: C:\app\Oracle\product\12.1.0\dbhome_1\network\admin\sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = WIN-KLAT SFOED53.localdomain)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE _NAME = dmnx))) OK (840 msec) |
А вот тyт все плохо и непонятки куда идти?
C:\app>tnsping dmn_ssl
[spoiler]TNS Ping Utility for 64-bit Windows: Version 12.1.0.1.0 - Production on 27-OCT-2
015 17:56:11
Copyright (c) 1997, 2013, Oracle. All rights reserved.
Used parameter files:
C:\app\Oracle\product\12.1.0\dbhome_1\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCPS)(HOST = WIN-KLA
TSFOED53.localdomain)(PORT = 2484)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVIC
E_NAME = dmnx)))
TNS-12560: TNS:protocol adapter error
До настройки клиента я еше не дошел, споткнувшись на малом.