Per configurare Oracle Database, procedere come segue.
Nota:
Queste operazioni sono necessarie solo se non è già stato creato un Oracle Wallet in precedenza. I passi riportati di seguito non sono necessari se sul server database viene utilizzato lo strumento relativo all'interfaccia utente grafica di Oracle Wallet.C:\> cd %ORACLE_HOME% C:\oracledb\12.1.0\home> mkdir wallet C:\oracledb\12.1.0\home> orapki wallet create -wallet wallet -pwd password1 -auto_loginÈ possibile ignorare i messaggi che richiedono l'utilizzo di
-auto_login_local
sulla riga di comando orapki
. Se si verifica un errore di autenticazione SSL, fare riferimento a ID documento 2238096.1 per risolvere il problema.
Inoltre, verificare le autorizzazioni di sicurezza del file cwallet.sso
(nella directory wallet) e controllare che l'utente del servizio listener Oracle disponga delle autorizzazioni di lettura per il file. Se non si dispone delle autorizzazioni di lettura, l'handshake SSL avrà esito negativo più avanti. Questa situazione si verifica se il database Oracle è stato installato senza che l'utente Oracle suggerito fosse autorizzato a eseguire l'accesso. Se il database Oracle è stato installato con l'utente Oracle, è necessario che il listener TNS venga eseguito come utente differente.
C:\oracledb\12.1.0\home> orapki wallet add -wallet wallet -pwd password1 -dn "CN={FQDN of db server}" - keysize 1024 -self_signed -validity 3650
La password password1
specificata nell'esempio sopra deve essere uguale alla password specificata nel Passo 1.
C:\oracledb\12.1.0\home> orapki wallet export -wallet wallet -pwd password1 -dn "CN={FQDN of db server}" -cert %COMPUTERNAME%-certificate.crt
1522
. In genere, per le connessioni SSL viene utilizzata la porta 2484
ed è possibile utilizzare qualsiasi porta disponibile. Prima di procedere apportando le modifiche necessarie, verificare che la porta che si desidera utilizzare sia disponibile sul server database.SQLNET.ORA
. L'elemento DIRECTORY nella dichiarazione WALLET_LOCATION deve puntare al wallet creato nel precedente Passo 1.
SQLNET.AUTHENTICATION_SERVICES= (TCPS, NTS, BEQ) NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) WALLET_LOCATION= (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = C:\oracledb\12.1.0\home\wallet) ) ) SSL_CLIENT_AUTHENTICATION = FALSE
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C:\oracledb\12.1.0\home) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:C:\oracledb\12.1.0\home\bin\oraclr12.dll") ) ) SSL_CLIENT_AUTHENTICATION = FALSE WALLET_LOCATION= (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = C:\oracledb\12.1.0\home\wallet) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myServer)(PORT = 1521)) ) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCPS)(HOST = myServer)(PORT = 1522)) ) (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) ADR_BASE_LISTENER = C:\oracledb
TNSNAMES.ORA
per la nuova porta.
ORCL_SSL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCPS)(HOST = myServer)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = myServer_service) ) )
Specificare la stessa porta individuata nel precedente Passo 5a e utilizzata nel Passo 5c.
C:\oracledb\12.1.0\home>lsnrctl stop C:\oracledb\12.1.0\home>lsnrctl start
C:\oracledb\12.1.0\home>tnsping orcl_ssl TNS Ping Utility for 64-bit Windows: Version 12.1.0.2.0 - Production on 10-SEP-2019 15:43:22 Copyright (c) 1997, 2014, Oracle. All rights reserved. Used parameter files: C:\oracledb\12.1.0\home\network\admin\sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCPS)(HOST = myServer) (PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = myServer_service))) OK (130 msec)