Oracle 데이터베이스를 구성하려면 아래 단계를 따르십시오.
주:
이러한 단계는 이전에 Oracle Wallet을 생성하지 않은 경우에만 필요합니다. 데이터베이스 서버에서 GUI 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
orapki
명령행에서 -auto_login_local
을 사용하라는 메시지는 무시할 수 있습니다. SSL 인증 실패 오류가 발생하는 경우 Doc ID 2238096.1을 참조하여 이슈를 해결하십시오.
또한, 전자 지갑 디렉토리 아래에 있는 cwallet.sso
파일의 보안 권한을 확인하여 Oracle 리스너 서비스 사용자에게 이 파일에 대한 읽기 권한이 있는지 확인하십시오. 읽기 권한이 없는 경우 나중에 SSL 핸드셰이크가 실패합니다. Oracle 데이터베이스가 로그온할 수 없는 제안된 Oracle 사용자로 설치된 경우 이러한 상황이 발생합니다. Oracle 데이터베이스가 Oracle 사용자로 설치된 경우 TNS 리스너는 다른 사용자로 실행되어야 합니다.
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
위 예의 password1
비밀번호는 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
포트에 새 리스너를 생성합니다. SSL 연결에 일반적으로 사용되는 포트는 2484
이며 모든 사용가능한 포트를 사용할 수 있습니다. 계속 진행하기 전에 사용하려는 포트가 데이터베이스 서버에서 사용가능한지 확인하고 필요에 따라 조정해야 합니다.SQLNET.ORA
를 업데이트합니다. WALLET_LOCATION 선언의 DIRECTORY 요소는 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
에 새 항목을 생성합니다.
ORCL_SSL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCPS)(HOST = myServer)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = myServer_service) ) )
위의 5a 단계에서 확인되고 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)