Wiki source code of Oracle SSL

Last modified by Nefedenkova Viktoria on 2023/07/18 20:13

Show last authors
1 [[Вернуться назад>>UNA.setting_of_workstation]]
2
3 = Oracle SSL =
4
5 = Настройка TCP/IP с SSL и TLS подключений Баз Данных =
6
7 Начиная с 10g Релиза 2 и далее, [[Native Network Encryption>>https://oracle-base.com/articles/misc/native-network-encryption-for-database-connections]] and TCP/IP with SSL/TLS уже не является частью [[Advanced Security Option>>https://docs.oracle.com/cd/B19306_01/license.102/b14199/options.htm#DBLIC138]]. Эта статья описывает необходимые шаги для настройки TCP/IP с SSL и TLS подключениями для БД.
8
9 Согласно документации Oracle, в этой статье термины SSL и TLS взаимозаменяемы. Подключения используют SSL или TLS в зависимости от выбранного типа шифрования. Разместите шифр в списке в убывающем порядке - от наиболее защищенного к слабому.
10
11 (% class="bs-callout bs-callout-primary" %)
12 (((
13 Сетевое шифрование крайне важно, особенно при размещении базы данных в облаке.
14 )))
15
16 Связанные статьи.
17
18 * [[Native Network Encryption for Database Connections>>https://oracle-base.com/articles/misc/native-network-encryption-for-database-connections]]
19
20 == Предпосылки и Допущения ==
21
22 (% id="result_box" lang="ru" %)В этой статье предполагается наличие следующих предпосылок.
23
24 * (% id="result_box" lang="ru" tabindex="-1" %)Функциональный сервер базы данных. В этом случае мы используем Oracle 12c (12.1.0.2), работающий на Oracle Linux 7 (OL7), а имя сервера - «ol7-121.localdomain». Настройка аналогична для других версий базы данных и Linux.
25 * (% id="result_box" lang="ru" tabindex="-1" %)Установлена клиентская машина с установленным Oracle Client. В этом случае мы используем клиент Oracle 11.2.0.3, установленный на ПК под управлением Windows 7 под названием «my-computer».
26 * (% id="result_box" lang="ru" tabindex="-1" %)Нет локальных или сетевых брандмауэров, блокирующих связь с сервером на порту 2484(%%).
27 * (% id="result_box" lang="ru" tabindex="-1" %)В примерах этой статьи используются самоподписанные сертификаты, но Вы можете так же использовать и сертификаты авторизированой сертификации, если хотите. Это не обязательно, поскольку Вы можете использовать эти сертификаты только в своей собственной организации или, возможно, для обмена информацией между Вашей локальной и облачной инфраструктурой.
28
29 == (% class="short_text" id="result_box" lang="ru" tabindex="-1" %)Серверный Wallet и сертификат(%%) ==
30
31 (% class="short_text" id="result_box" lang="ru" tabindex="-1" %)Создание нового Wallet с автоматической авторизацией.
32
33 ====
34 {{{$ mkdir -p /u01/app/oracle/wallet
35 }}}
36 {{{$ orapki wallet create -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123 -auto_login_local
37 Oracle PKI Tool : Version 12.1.0.2
38 Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
39 $}}} ====
40
41 (% id="result_box" lang="ru" %)Создайте самоподписывающийся сертификат и загрузите его в(%%) wallet.
42
43 ====
44 {{{$ orapki wallet add -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123 \
45 -dn "CN=`hostname`" -keysize 1024 -self_signed -validity 3650
46 Oracle PKI Tool : Version 12.1.0.2
47 Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
48 $}}} ====
49
50 ==== ====
51
52 (% id="result_box" lang="ru" tabindex="-1" %)Проверьте содержимое wallet. Обратите внимание, что самоподписывающийся сертификат является как пользовательским, так и доверенным сертификатом.
53
54 ====
55 {{{$ orapki wallet display -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123
56 Oracle PKI Tool : Version 12.1.0.2
57 Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
58 Requested Certificates:
59 User Certificates:
60 Subject: CN=ol7-121.localdomain
61 Trusted Certificates:
62 Subject: CN=ol7-121.localdomain
63 $}}} ====
64
65 Экспортируйте certificate, можно загрузить его в wallet позже.
66
67
68 ==== {{{$ orapki wallet export -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123 \
69 -dn "CN=`hostname`" -cert /tmp/`hostname`-certificate.crt
70 Oracle PKI Tool : Version 12.1.0.2
71 Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
72 $}}} ====
73
74 ==== ====
75
76 (% id="result_box" lang="ru" tabindex="-1" %)Проверьте, что бы сертификат был экспортирован, как ожидалось.
77
78
79 ==== {{{$ cat /tmp/`hostname`-certificate.crt
80 -----BEGIN CERTIFICATE-----
81 MIIBqzCCARQCAQAwDQYJKoZIhvcNAQEEBQAwHjEcMBoGA1UEAxMTb2w3LTEyMS5sb2NhbGRvbWFp
82 bjAeFw0xNTA2MjYxNDQyMDJaFw0yNTA2MjMxNDQyMDJaMB4xHDAaBgNVBAMTE29sNy0xMjEubG9j
83 YWxkb21haW4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJIrU1fGWAwMxRobFsS0UZBD1jFU
84 wAvnH9blsynhrQrZSkwyMBWGPRFq5tufRpaifoNVVHSrjJm/nti62A6RXECAKsug9rHL8T11FOgP
85 3R/+Itw2jLzwpdk7MbHMxpNHz6Y2IPCmBsJ5+625dRxugVKhLsIitAW5cUpT28bkrMl9AgMBAAEw
86 DQYJKoZIhvcNAQEEBQADgYEABqQaP056WcPNgzSAOhJgTU/6D8uAFGCgUN57HoraXxgAN3HgmeGq
87 hQfpb8tP+xeTF3ecqvWqJQHGdAJbuhRwpNR1rRovvlOxiv4gl0AplRzRuiygXfi6gst7KNmAdoxr
88 TOcUQsqf/Ei9TaFl/N8E+88T2fK67JHgFa4QDs/XZWM=
89 -----END CERTIFICATE-----
90 $}}} ====
91
92 ==== ====
93
94 == Клиентский Wallet и Сертификат ==
95
96 Создайте новый самоавторизирующийся wallet.
97
98 ==== {{{c:\>mkdir -p c:\app\oracle\wallet
99
100 c:\>orapki wallet create -wallet "c:\app\oracle\wallet" -pwd WalletPasswd123 -auto_login_local
101 Oracle PKI Tool : Version 11.2.0.3.0 - Production
102 Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
103
104 c:\>}}} ====
105
106 ==== ====
107
108 Создайте новый самоавторизирующийся сертификат и загрузите его в wallet.
109
110 ==== {{{c:\>orapki wallet add -wallet "c:\app\oracle\wallet" -pwd WalletPasswd123 -dn "CN=%computername%" -keysize 1024 -self_signed -validity 3650
111 Oracle PKI Tool : Version 11.2.0.3.0 - Production
112 Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
113
114 c:\>}}} ====
115
116 ==== ====
117
118 (% id="result_box" lang="ru" tabindex="-1" %)Проверьте содержимое wallet. Обозначьте, что самоавторизирующийся сертификат является как пользовательским, так и доверенным сертификатом.
119
120 ==== {{{c:\>orapki wallet display -wallet "c:\app\oracle\wallet" -pwd WalletPasswd123
121 Oracle PKI Tool : Version 11.2.0.3.0 - Production
122 Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
123
124 Requested Certificates:
125 User Certificates:
126 Subject: CN=my-computer
127 Trusted Certificates:
128 Subject: OU=Class 2 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
129 Subject: OU=Secure Server Certification Authority,O=RSA Data Security\, Inc.,C=US
130 Subject: CN=GTE CyberTrust Global Root,OU=GTE CyberTrust Solutions\, Inc.,O=GTE Corporation,C=US
131 Subject: CN=my-computer
132 Subject: OU=Class 3 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
133 Subject: OU=Class 1 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
134
135 c:\>}}} ====
136
137 ==== ====
138
139 (% id="result_box" lang="ru" tabindex="-1" %)Экспортируйте сертификат, чтобы позже загрузить его на сервер.
140
141 ====
142 {{{c:\>orapki wallet export -wallet "c:\app\oracle\wallet" -pwd WalletPasswd123 -dn "CN=%computername%" -cert c:\%computername%-certificate.crt
143 Oracle PKI Tool : Version 11.2.0.3.0 - Production
144 Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
145
146 c:\>}}} ====
147
148 ==== ====
149
150 (% class="short_text" id="result_box" lang="ru" tabindex="-1" %)Проверьте сертификат.
151
152 ====
153 {{{c:\>more c:\%computername%-certificate.crt
154 -----BEGIN CERTIFICATE-----
155 MIIBmzCCAQQCAQAwDQYJKoZIhvcNAQEEBQAwFjEUMBIGA1UEAxMLSVRTLUYxTUxDNUowHhcNMTUw
156 NjI2MDkzMzE2WhcNMjUwNjIzMDkzMzE2WjAWMRQwEgYDVQQDEwtJVFMtRjFNTEM1SjCBnzANBgkq
157 hkiG9w0BAQEFAAOBjQAwgYkCgYEAk/oX7ulDhW+DKXdD+qYC9DN7DoTsmeGZaW7EwYr48sw2qQWK
158 HP3pFb8/eVLHuqd2tX8RCniI6Dy5iMe7aM+BOvtGDT2bkCENO7xflww+L/Jp1JeF4OCawE36/Coy
159 sWAu4yom7n109ioT2rQsN62ERj8wPa53r8KAB12UnidBzRECAwEAATANBgkqhkiG9w0BAQQFAAOB
160 gQB7hbEUXM3ur2H2osuaX24mxmw83yxLnvx9BDi10kbTdH02St/EfCNlCWc69L5iAeJVESvaVgJQ
161 u1AZEeD3jPYMFWTnGfX4txo7+GJWwpxCJXqYYrmYQL2h1W6UtTVsJgQ08wo2bTHTjII6HB6wt8CK
162 OU46CFGLL+7B7Xrpnk1UwA==
163 -----END CERTIFICATE-----
164
165 c:\>}}} ====
166
167 ==== ====
168
169 == Замена Сертификатов ==
170
171 (% id="result_box" lang="ru" tabindex="-1" %)Каждая сторона подключения должна доверять другой, поэтому мы должны загрузить сертификат с сервера в виде доверенного сертификата в клиентский wallet и наоборот.
172 \\Загрузите сертификат сервера в клиентский wallet.
173
174 ==== {{{c:\>orapki wallet add -wallet "c:\app\oracle\wallet" -pwd WalletPasswd123 -trusted_cert -cert c:\ol7-121.localdomain-certificate.crt
175 Oracle PKI Tool : Version 11.2.0.3.0 - Production
176 Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
177
178 c:\>}}} ====
179
180 ==== ====
181
182 (% id="result_box" lang="ru" tabindex="-1" %)Проверьте содержимое клиентского wallet. Обратите внимание, что сертификат сервера теперь включен в список доверенных сертификатов.
183
184
185 ==== {{{c:\>orapki wallet display -wallet "c:\app\oracle\wallet" -pwd WalletPasswd123
186 Oracle PKI Tool : Version 11.2.0.3.0 - Production
187 Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
188
189 Requested Certificates:
190 User Certificates:
191 Subject: CN=my-computer
192 Trusted Certificates:
193 Subject: OU=Secure Server Certification Authority,O=RSA Data Security\, Inc.,C=US
194 Subject: OU=Class 2 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
195 Subject: CN=my-computer
196 Subject: OU=Class 3 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
197 Subject: OU=Class 1 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
198 Subject: CN=ol7-121.localdomain
199 Subject: CN=GTE CyberTrust Global Root,OU=GTE CyberTrust Solutions\, Inc.,O=GTE Corporation,C=US
200
201 c:\>}}} ====
202
203 ==== ====
204
205 (% class="short_text" id="result_box" lang="ru" tabindex="-1" %)Загрузка клиентского сертификата на сервер(%%) wallet.
206
207
208 ==== {{{$ orapki wallet add -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123 \
209 -trusted_cert -cert /tmp/my-computer-certificate.crt
210 Oracle PKI Tool : Version 12.1.0.2
211 Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
212 $}}} ====
213
214 ==== ====
215
216 (% id="result_box" lang="ru" tabindex="-1" %)Проверьте содержимое серверного wallet. Отметьте, что сертификат клиента теперь включен в список доверенных сертификатов.
217
218
219 ==== {{{$ orapki wallet display -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123
220 Oracle PKI Tool : Version 12.1.0.2
221 Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
222
223 Requested Certificates:
224 User Certificates:
225 Subject: CN=ol7-121.localdomain
226 Trusted Certificates:
227 Subject: CN=my-computer
228 Subject: CN=ol7-121.localdomain
229 $}}} ====
230
231 ==== ====
232
233 == Настройка сетевого сервера ==
234
235 (% id="result_box" lang="ru" tabindex="-1" %)На сервере добавьте следующие записи в(%%) "$ORACLE_HOME/network/admin/sqlnet.ora"(% id="result_box" lang="ru" tabindex="-1" %) файл.
236
237
238 ==== {{{WALLET_LOCATION =
239 (SOURCE =
240 (METHOD = FILE)
241 (METHOD_DATA =
242 (DIRECTORY = /u01/app/oracle/wallet)
243 )
244 )
245
246 SQLNET.AUTHENTICATION_SERVICES = (TCPS,NTS,BEQ)
247 SSL_CLIENT_AUTHENTICATION = FALSE
248 SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA)}}} ====
249
250 (% class="bs-callout bs-callout-primary" %)
251 (((
252 (% id="result_box" lang="ru" tabindex="-1" %)Вам, вероятно, нужно подумать о том, какие комплекты шифрования вы хотите поддерживать. Возможно, вы захотите избежать поддержки SSLv3 в пользу тех, кто поддерживает только TLS. Ваше решение зависит от базы данных Oracle и клиентских версий.
253 )))
254
255 ==== ====
256
257 (% id="result_box" lang="ru" tabindex="-1" %)Настройте listener для приема зашифрованных соединений SSL / TLS. Отредактируйте файл $ ORACLE_HOME / network / admin / listener.ora, добавив информацию о wallet, а также запись TCPS.
258
259
260 ==== {{{SSL_CLIENT_AUTHENTICATION = FALSE
261
262 WALLET_LOCATION =
263 (SOURCE =
264 (METHOD = FILE)
265 (METHOD_DATA =
266 (DIRECTORY = /u01/app/oracle/wallet)
267 )
268 )
269
270 LISTENER =
271 (DESCRIPTION_LIST =
272 (DESCRIPTION =
273 (ADDRESS = (PROTOCOL = TCP)(HOST = ol7-121.localdomain)(PORT = 1521))
274 (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
275 (ADDRESS = (PROTOCOL = TCPS)(HOST = ol7-121.localdomain)(PORT = 2484))
276 )
277 )
278
279 ADR_BASE_LISTENER = /u01/app/oracle}}} ====
280
281 ==== ====
282
283 Перезапустите listener.
284
285
286 ==== {{{$ lsnrctl stop
287 $ lsnrctl start}}} ====
288
289 ==== ====
290
291 Сервер настроен.
292
293 == Настройка сетевого клиента ==
294
295 Отредактируйте "$ORACLE_HOME/network/admin/sqlnet.ora" file, добавив следующие строки.
296
297
298 ==== {{{WALLET_LOCATION =
299 (SOURCE =
300 (METHOD = FILE)
301 (METHOD_DATA =
302 (DIRECTORY = c:\app\oracle\wallet)
303 )
304 )
305
306 SQLNET.AUTHENTICATION_SERVICES = (TCPS,NTS)
307 SSL_CLIENT_AUTHENTICATION = FALSE
308 SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA)}}} ====
309
310 (% class="bs-callout bs-callout-primary" %)
311 (((
312 (% id="result_box" lang="ru" tabindex="-1" %)Убедитесь, что набор шифров клиента соответствует конфигурации сервера.
313 )))
314
315 ==== ====
316
317 Измените "$ORACLE_HOME/network/admin/tnsnames.ora" файл, (% id="result_box" lang="ru" tabindex="-1" %)убедитесь, что порт соответствует настройке для SSL на сервере, а протокол - TCPS.
318
319
320 ==== {{{pdb1_ssl=
321 (DESCRIPTION=
322 (ADDRESS=
323 (PROTOCOL=TCPS)
324 (HOST=ol7-121.localdomain)
325 (PORT=2484)
326 )
327 (CONNECT_DATA=
328 (SERVER=dedicated)
329 (SERVICE_NAME=pdb1)
330 )
331 )
332 }}} ====
333
334 ==== ====
335
336 Клиент настроен
337
338 == Тестовое подключение ==
339
340 (% id="result_box" lang="ru" tabindex="-1" %)Теперь вы можете подключиться к серверу с помощью входа TNS с поддержкой SSL / TLS.
341
342
343 ==== {{{c:\>sqlplus test/test@pdb1_ssl
344
345 SQL*Plus: Release 11.2.0.3.0 Production on Fri Jun 26 16:23:28 2015
346
347 Copyright (c) 1982, 2011, Oracle. All rights reserved.
348
349
350 Connected to:
351 Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
352 With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
353
354 SQL>}}} ====
355
356 ==== ====
357
358 (% class="short_text" id="result_box" lang="ru" tabindex="-1" %)Для получения дополнительной информации:
359
360 * [[Enabling Secure Sockets Layer>>http://docs.oracle.com/cd/E11882_01/network.112/e40393/asossl.htm#ASOAG074]]
361 * [[End To End Examples of using SSL With Oracle's JDBC THIN Driver (Doc ID 762286.1)>>https://support.oracle.com/epmos/faces/DocContentDisplay?id=762286.1]]
362 * [[Native Network Encryption for Database Connections>>https://oracle-base.com/articles/misc/native-network-encryption-for-database-connections]]