Oracle 데이터베이스 서버 구성

Oracle Wallet Manager 및 orapki 명령과 같은 Oracle 도구를 사용하여 Oracle Database 서버에 신뢰 저장소와 키 저장소를 모두 구성하십시오.

이 태스크에 대한 정보

테스트 용도로 다음 명령을 사용하여 자체 서명한 인증 기관, 신뢰 저장소 및 키 저장소를 설정할 수 있습니다.
cd c:\temp
mkdir authority
mkdir server
mkdir client

자체 서명한 인증 기관

orapki wallet create -wallet ./authority -pwd=ThePwd12

orapki wallet add -wallet ./authority -dn "CN=authority, C=US" -keysize 2048 
-self_signed -validity 3650 -pwd=ThePwd12

orapki wallet export -wallet ./authority -dn "CN=authority, C=US" -cert 
./authority/CA.cer -pwd=ThePwd12

CA 인증서를 Dispatcher 신뢰 저장소로 가져오기 위해 keytool 명령을 실행할 때 권한 디렉토리의 CA.cer 파일을 신뢰할 수 있는 인증서로 사용하십시오.

서버 인증을 위한 저장소

orapki wallet create -wallet ./server -auto_login -pwd=ThePwd12

orapki wallet add -wallet ./server -dn "CN=server, C=US" -keysize 2048 
-pwd=ThePwd12

orapki wallet export -wallet ./server -dn "CN=server, C=US" -request 
./server/creq.cer -pwd=ThePwd12

orapki cert create -wallet ./authority -request ./server/creq.cer -cert 
./server/signed.cer -validity 3650 -pwd=ThePwd12

orapki wallet add -wallet ./server -trusted_cert -cert ./authority/CA.cer 
-pwd=ThePwd12

orapki wallet add -wallet ./server -user_cert -cert ./server/signed.cer 
-pwd=ThePwd12

클라이언트 인증용 저장소

orapki wallet create -wallet ./client -auto_login -pwd=ThePwd12

orapki wallet add -wallet ./client -dn "CN=client, C=US" -keysize 2048 
-pwd=ThePwd12

orapki wallet export -wallet ./client -dn "CN=client, C=US" -request 
./client/creq.cer -pwd=ThePwd12

orapki cert create -wallet ./authority -request ./client/creq.cer -cert 
./client/signed.cer -validity 3650 -pwd=ThePwd12

orapki wallet add -wallet ./client -trusted_cert -cert ./authority/CA.cer 
-pwd=ThePwd12

orapki wallet add -wallet ./client -user_cert -cert ./client/signed.cer 
-pwd=ThePwd12

Oracle 네트워크 구성

SSL을 사용하려면 Oracle 데이터베이스 서버에서 다음 두 파일을 구성하십시오.

  • listener.ora
  • sqlnet.ora

이러한 파일은 Oracle 홈 디렉토리의 network\admin 디렉토리에 있습니다. Oracle Net Manager 또는 텍스트 편집기를 사용하여 이들 파일을 편집할 수 있습니다.

listener.ora:

SSL_VERSION = 3.0
SSL_CLIENT_AUTHENTICATION = FALSE

WALLET_LOCATION =
  (SOURCE =
    (METHOD = FILE)
    (METHOD_DATA =
      (DIRECTORY = myDir)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = myHost)(PORT = nonSSLPort))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCPS)(HOST = myHost)(PORT = sslPort))
    )
  )

sqlnet.ora:

SQLNET.AUTHENTICATION_SERVICES= (TCPS, NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES)

SSL_VERSION = 3.0
SSL_CLIENT_AUTHENTICATION = FALSE

WALLET_LOCATION =
  (SOURCE =
    (METHOD = FILE)
    (METHOD_DATA =
      (DIRECTORY = myDir)
    )
  )

여기서,

myDir
Oracle 데이터베이스 서버에서 신뢰 저장소의 디렉토리 위치입니다. 예를 들어, C:\temp\server입니다.
myHost
서버 호스트 이름입니다.
nonSSLPort
SSL이 아닌 통신 포트(TCP 프로토콜)입니다. 예를 들면, 1521입니다.
sslPort
SSL 통신 포트(TCPS 프로토콜)입니다. 예를 들면, 2484입니다.