[Oracle 12c] Step by Step SSL encryption
От: Lepsik Индия figvam.ca
Дата: 29.10.15 13:33
Оценка: 18 (1)
нужен волшебный пендель подсказать направление.

Итак: 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

До настройки клиента я еше не дошел, споткнувшись на малом.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.