нужен волшебный пендель подсказать направление.
Итак: 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#JDBCA601
https://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 = oracle.localdomain)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCPS)(HOST = oracle.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)
)
) |
| |
| tnsnames.ora |
| DMNX =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dmnx)
)
)
DMNX_SSL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCPS)(HOST = oracle.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=oracle)(PORT=15
21)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=oracle)(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 — Production
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 dmnx
Пока все хорошо:
| C:\app>tnsping dmnx |
| NS 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 = oracle.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 = oracle.localdomain)(PORT = 2484)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVIC
E_NAME = dmnx)))
TNS-12560: TNS:protocol adapter error
До настройки клиента я еше не дошел, споткнувшись на малом.