Oracle SSL

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

Вернуться назад

Oracle SSL

Настройка TCP/IP с SSL и TLS подключений Баз Данных

Начиная с 10g Релиза 2 и далее, Native Network Encryption and TCP/IP with SSL/TLS уже не является частью Advanced Security Option. Эта статья описывает необходимые шаги для настройки TCP/IP с SSL и TLS подключениями для БД.

Согласно документации Oracle, в этой статье термины SSL и TLS взаимозаменяемы. Подключения используют SSL или TLS в зависимости от выбранного типа шифрования. Разместите шифр в списке в убывающем порядке - от наиболее защищенного к слабому.

Сетевое шифрование крайне важно, особенно при размещении базы данных в облаке.

Связанные статьи.

Предпосылки и Допущения

В этой статье предполагается наличие следующих предпосылок.

  • Функциональный сервер базы данных. В этом случае мы используем Oracle 12c (12.1.0.2), работающий на Oracle Linux 7 (OL7), а имя сервера - «ol7-121.localdomain». Настройка аналогична для других версий базы данных и Linux.
  • Установлена клиентская машина с установленным Oracle Client. В этом случае мы используем клиент Oracle 11.2.0.3, установленный на ПК под управлением Windows 7 под названием «my-computer».
  • Нет локальных или сетевых брандмауэров, блокирующих связь с сервером на порту 2484.
  • В примерах этой статьи используются самоподписанные сертификаты, но Вы можете так же использовать и сертификаты авторизированой сертификации, если хотите. Это не обязательно, поскольку Вы можете использовать эти сертификаты только в своей собственной организации или, возможно, для обмена информацией между Вашей локальной и облачной инфраструктурой.

Серверный Wallet и сертификат

Создание нового Wallet с автоматической авторизацией.


$ mkdir -p /u01/app/oracle/wallet
$ orapki wallet create -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123 -auto_login_local Oracle PKI Tool : Version 12.1.0.2 Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved. $

Создайте самоподписывающийся сертификат и загрузите его в wallet.


$ orapki wallet add -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123 \ -dn "CN=`hostname`" -keysize 1024 -self_signed -validity 3650 Oracle PKI Tool : Version 12.1.0.2 Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved. $

Проверьте содержимое wallet. Обратите внимание, что самоподписывающийся сертификат является как пользовательским, так и доверенным сертификатом.


$ orapki wallet display -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123 Oracle PKI Tool : Version 12.1.0.2 Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved. Requested Certificates: User Certificates: Subject: CN=ol7-121.localdomain Trusted Certificates: Subject: CN=ol7-121.localdomain $

Экспортируйте certificate, можно загрузить его в wallet позже.

$ orapki wallet export -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123 \ -dn "CN=`hostname`" -cert /tmp/`hostname`-certificate.crt Oracle PKI Tool : Version 12.1.0.2 Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved. $

Проверьте, что бы сертификат был экспортирован, как ожидалось.

$ cat /tmp/`hostname`-certificate.crt -----BEGIN CERTIFICATE----- MIIBqzCCARQCAQAwDQYJKoZIhvcNAQEEBQAwHjEcMBoGA1UEAxMTb2w3LTEyMS5sb2NhbGRvbWFp bjAeFw0xNTA2MjYxNDQyMDJaFw0yNTA2MjMxNDQyMDJaMB4xHDAaBgNVBAMTE29sNy0xMjEubG9j YWxkb21haW4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJIrU1fGWAwMxRobFsS0UZBD1jFU wAvnH9blsynhrQrZSkwyMBWGPRFq5tufRpaifoNVVHSrjJm/nti62A6RXECAKsug9rHL8T11FOgP 3R/+Itw2jLzwpdk7MbHMxpNHz6Y2IPCmBsJ5+625dRxugVKhLsIitAW5cUpT28bkrMl9AgMBAAEw DQYJKoZIhvcNAQEEBQADgYEABqQaP056WcPNgzSAOhJgTU/6D8uAFGCgUN57HoraXxgAN3HgmeGq hQfpb8tP+xeTF3ecqvWqJQHGdAJbuhRwpNR1rRovvlOxiv4gl0AplRzRuiygXfi6gst7KNmAdoxr TOcUQsqf/Ei9TaFl/N8E+88T2fK67JHgFa4QDs/XZWM= -----END CERTIFICATE----- $

Клиентский Wallet и Сертификат

Создайте новый самоавторизирующийся wallet.

c:\>mkdir -p c:\app\oracle\wallet c:\>orapki wallet create -wallet "c:\app\oracle\wallet" -pwd WalletPasswd123 -auto_login_local Oracle PKI Tool : Version 11.2.0.3.0 - Production Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. c:\>

Создайте новый самоавторизирующийся сертификат и загрузите его в wallet.

c:\>orapki wallet add -wallet "c:\app\oracle\wallet" -pwd WalletPasswd123 -dn "CN=%computername%" -keysize 1024 -self_signed -validity 3650 Oracle PKI Tool : Version 11.2.0.3.0 - Production Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. c:\>

Проверьте содержимое wallet. Обозначьте, что самоавторизирующийся сертификат является как пользовательским, так и доверенным сертификатом.

c:\>orapki wallet display -wallet "c:\app\oracle\wallet" -pwd WalletPasswd123 Oracle PKI Tool : Version 11.2.0.3.0 - Production Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. Requested Certificates: User Certificates: Subject: CN=my-computer Trusted Certificates: Subject: OU=Class 2 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US Subject: OU=Secure Server Certification Authority,O=RSA Data Security\, Inc.,C=US Subject: CN=GTE CyberTrust Global Root,OU=GTE CyberTrust Solutions\, Inc.,O=GTE Corporation,C=US Subject: CN=my-computer Subject: OU=Class 3 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US Subject: OU=Class 1 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US c:\>

Экспортируйте сертификат, чтобы позже загрузить его на сервер.


c:\>orapki wallet export -wallet "c:\app\oracle\wallet" -pwd WalletPasswd123 -dn "CN=%computername%" -cert c:\%computername%-certificate.crt Oracle PKI Tool : Version 11.2.0.3.0 - Production Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. c:\>

Проверьте сертификат.


c:\>more c:\%computername%-certificate.crt -----BEGIN CERTIFICATE----- MIIBmzCCAQQCAQAwDQYJKoZIhvcNAQEEBQAwFjEUMBIGA1UEAxMLSVRTLUYxTUxDNUowHhcNMTUw NjI2MDkzMzE2WhcNMjUwNjIzMDkzMzE2WjAWMRQwEgYDVQQDEwtJVFMtRjFNTEM1SjCBnzANBgkq hkiG9w0BAQEFAAOBjQAwgYkCgYEAk/oX7ulDhW+DKXdD+qYC9DN7DoTsmeGZaW7EwYr48sw2qQWK HP3pFb8/eVLHuqd2tX8RCniI6Dy5iMe7aM+BOvtGDT2bkCENO7xflww+L/Jp1JeF4OCawE36/Coy sWAu4yom7n109ioT2rQsN62ERj8wPa53r8KAB12UnidBzRECAwEAATANBgkqhkiG9w0BAQQFAAOB gQB7hbEUXM3ur2H2osuaX24mxmw83yxLnvx9BDi10kbTdH02St/EfCNlCWc69L5iAeJVESvaVgJQ u1AZEeD3jPYMFWTnGfX4txo7+GJWwpxCJXqYYrmYQL2h1W6UtTVsJgQ08wo2bTHTjII6HB6wt8CK OU46CFGLL+7B7Xrpnk1UwA== -----END CERTIFICATE----- c:\>

Замена Сертификатов

Каждая сторона подключения должна доверять другой, поэтому мы должны загрузить сертификат с сервера в виде доверенного сертификата в клиентский wallet и наоборот.

Загрузите сертификат сервера в клиентский wallet.

c:\>orapki wallet add -wallet "c:\app\oracle\wallet" -pwd WalletPasswd123 -trusted_cert -cert c:\ol7-121.localdomain-certificate.crt Oracle PKI Tool : Version 11.2.0.3.0 - Production Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. c:\>

Проверьте содержимое клиентского wallet. Обратите внимание, что сертификат сервера теперь включен в список доверенных сертификатов.

c:\>orapki wallet display -wallet "c:\app\oracle\wallet" -pwd WalletPasswd123 Oracle PKI Tool : Version 11.2.0.3.0 - Production Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. Requested Certificates: User Certificates: Subject: CN=my-computer Trusted Certificates: Subject: OU=Secure Server Certification Authority,O=RSA Data Security\, Inc.,C=US Subject: OU=Class 2 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US Subject: CN=my-computer Subject: OU=Class 3 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US Subject: OU=Class 1 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US Subject: CN=ol7-121.localdomain Subject: CN=GTE CyberTrust Global Root,OU=GTE CyberTrust Solutions\, Inc.,O=GTE Corporation,C=US c:\>

Загрузка клиентского сертификата на сервер wallet.

$ orapki wallet add -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123 \ -trusted_cert -cert /tmp/my-computer-certificate.crt Oracle PKI Tool : Version 12.1.0.2 Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved. $

Проверьте содержимое серверного wallet. Отметьте, что сертификат клиента теперь включен в список доверенных сертификатов.

$ orapki wallet display -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123 Oracle PKI Tool : Version 12.1.0.2 Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved. Requested Certificates: User Certificates: Subject: CN=ol7-121.localdomain Trusted Certificates: Subject: CN=my-computer Subject: CN=ol7-121.localdomain $

Настройка сетевого сервера

На сервере добавьте следующие записи в "$ORACLE_HOME/network/admin/sqlnet.ora" файл.

WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /u01/app/oracle/wallet) ) ) SQLNET.AUTHENTICATION_SERVICES = (TCPS,NTS,BEQ) SSL_CLIENT_AUTHENTICATION = FALSE SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA)

Вам, вероятно, нужно подумать о том, какие комплекты шифрования вы хотите поддерживать. Возможно, вы захотите избежать поддержки SSLv3 в пользу тех, кто поддерживает только TLS. Ваше решение зависит от базы данных Oracle и клиентских версий.

Настройте listener для приема зашифрованных соединений SSL / TLS. Отредактируйте файл $ ORACLE_HOME / network / admin / listener.ora, добавив информацию о wallet, а также запись TCPS.

SSL_CLIENT_AUTHENTICATION = FALSE WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /u01/app/oracle/wallet) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ol7-121.localdomain)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCPS)(HOST = ol7-121.localdomain)(PORT = 2484)) ) ) ADR_BASE_LISTENER = /u01/app/oracle

Перезапустите listener.

$ lsnrctl stop $ lsnrctl start

Сервер настроен.

Настройка сетевого клиента

Отредактируйте "$ORACLE_HOME/network/admin/sqlnet.ora" file, добавив следующие строки.

WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = c:\app\oracle\wallet) ) ) SQLNET.AUTHENTICATION_SERVICES = (TCPS,NTS) SSL_CLIENT_AUTHENTICATION = FALSE SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA)

Убедитесь, что набор шифров клиента соответствует конфигурации сервера.

Измените "$ORACLE_HOME/network/admin/tnsnames.ora" файл, убедитесь, что порт соответствует настройке для SSL на сервере, а протокол - TCPS.

pdb1_ssl= (DESCRIPTION= (ADDRESS= (PROTOCOL=TCPS) (HOST=ol7-121.localdomain) (PORT=2484) ) (CONNECT_DATA= (SERVER=dedicated) (SERVICE_NAME=pdb1) ) )

Клиент настроен

Тестовое подключение

Теперь вы можете подключиться к серверу с помощью входа TNS с поддержкой SSL / TLS.

c:\>sqlplus test/test@pdb1_ssl SQL*Plus: Release 11.2.0.3.0 Production on Fri Jun 26 16:23:28 2015 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options SQL>

Для получения дополнительной информации: