使用orapki生成證書,配置Oracle數據使用SSL和TLS進行數據庫連接的TCP/IP配置==TCPS


內容參考Oracle官方文檔:

  https://oracle-base.com/articles/misc/configure-tcpip-with-ssl-and-tls-for-database-connections

  https://docs.oracle.com/cd/E11882_01/network.112/e40393/asoappf.htm#ASOAG9835

  orapki實用程序用於從命令行管理公用密鑰基礎結構(PKI)元素,例如錢包和證書撤銷列表。這使您可以使用腳本自動執行這些任務。提供一種將PKI元素管理結合到腳本中的方法,可以自動執行許多維護PKI的日常任務

客戶端與服務器端基本環境:

  • 服務器端操作系統為CentOS 6.5_x86,安裝並在運行着Oracle11g數據庫,主機名為oracle.lushenle.com,IP地址為192.168.200.249,數據庫實例為orcl
  • 客戶端為Windows7操作系統,64位,安裝了Oracle11g客戶端,能正常連接服務器端的數據庫,主機名為ASUS-PC

主要配置步驟:

  • 服務器端配置Wallet和生成證書
  • 客戶端配置Wallet和生成證書
  • 交換證書
  • 服務器端網絡配置
  • 客戶端網絡配置
  • 測試連接

服務器端配置Wallet和生成證書

  創建一個新的自動登錄wallet

    $ mkdir -p /u01/app/oracle/wallet
    $ orapki wallet create -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123 -auto_login_local

  創建一個自簽名證書並將其加載到

 

    $ orapki wallet add -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123 -dn "CN=`hostname`" -keysize 1024 -self_signed -validity 3650

  檢查wallet的內容,需要注意的是自簽名證書既是用戶也是可信證書

    $ orapki wallet display -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123

  導出證書,以便稍后將其加載到客戶的wallet中

    $ orapki wallet export -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123 -dn "CN=`hostname`" -cert /tmp/`hostname`-certificate.crt

  檢查證書是否已按預期導出

    $ cat /tmp/`hostname`-certificate.crt

客戶端配置Wallet和生成證書

  創建一個新的自動登錄wallet

    c:\>mkdir d:\app\oracle\wallet

    c:\>orapki wallet create -wallet "d:\app\oracle\wallet" -pwd WalletPasswd123 -auto_login_local

  創建一個自簽名證書並將其加載到wallet中

    c:\>orapki wallet add -wallet "d:\app\oracle\wallet" -pwd WalletPasswd123 -dn "CN=%computername%" -keysize 1024 -self_signed -validity 3650

  檢查wallet的內容,需要注意的是自簽名證書既是用戶也是可信證書

    c:\>orapki wallet display -wallet "d:\app\oracle\wallet" -pwd WalletPasswd123

  導出證書,以便稍后將其加載到服務器中

    c:\>orapki wallet export -wallet "d:\app\oracle\wallet" -pwd WalletPasswd123 -dn "CN=%computername%" -cert d:\%computername%-certificate.crt

  檢查證書

    c:\>more d:\%computername%-certificate.crt

交換證書 

  連接的每一方都需要相互信任,所以必須從服務器上將證書作為可信證書加載到客戶端wallet中,反之亦然。

  遠程連接上服務,使用xftp將證書下載到客戶端,同時也把客戶端證書上傳到服務器,再將服務器證書加載到客戶端wallet中

    c:\>orapki wallet add -wallet "d:\app\oracle\wallet" -pwd WalletPasswd123 -trusted_cert -cert d:\oracle.lushenle.com-certificate.crt

  檢查客戶wallet的內容,注意服務器證書現在包含在可信證書列表中

    c:\>orapki wallet display -wallet "d:\app\oracle\wallet" -pwd WalletPasswd123

  將客戶端證書加載到服務器錢包中

    $ orapki wallet add -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123 -trusted_cert -cert /tmp/ASUS-PC-certificate.crt

  檢查服務器wallet的內容,注意客戶證書現在包含在可信證書列表中

    $ orapki wallet display -wallet "/u01/app/oracle/wallet" -pwd WalletPasswd123

服務器網絡配置

  在服務器上,將以下內容添加到“$ORACLE_HOME/network/admin/sqlnet.ora”文件中

復制代碼
 1 WALLET_LOCATION =
 2 (SOURCE =  3 (METHOD = FILE)  4 (METHOD_DATA =  5 (DIRECTORY = /u01/app/oracle/wallet)  6  )  7  )  8  9 SQLNET.AUTHENTICATION_SERVICES = (TCPS,NTS,BEQ) 10 SSL_CLIENT_AUTHENTICATION = FALSE 11 SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA)
復制代碼

  將監聽配置為接受SSL/TLS加密連接。編輯“$ORACLE_HOME/network/admin/listener.ora”文件,添加wallet信息以及TCPS內容

復制代碼
 1 SSL_CLIENT_AUTHENTICATION = FALSE  2  3 WALLET_LOCATION =  4 (SOURCE =  5 (METHOD = FILE)  6 (METHOD_DATA =  7 (DIRECTORY = /u01/app/oracle/wallet)  8  )  9  ) 10 11 LISTENER = 12 (DESCRIPTION_LIST = 13 (DESCRIPTION = 14 (ADDRESS = (PROTOCOL = TCP)(HOST = oracle.lushenle.com)(PORT = 1521)) 15 (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 16 (ADDRESS = (PROTOCOL = TCPS)(HOST = oracle.lushenle.com)(PORT = 2484)) 17  ) 18  ) 19 20 ADR_BASE_LISTENER = /u01/app/oracle 
復制代碼

  

  重啟監聽 

    $ lsnrctl stop
    $ lsnrctl start

    ```好像是 lsnrctl reload 也可以的,不用stop再start```

  至此,服務器端已經配置完成

客戶端網絡配置

  編輯“$ORACLE_HOME/network/admin/sqlnet.ora”文件,添加以內容

復制代碼
 1 WALLET_LOCATION =
 2 (SOURCE =  3 (METHOD = FILE)  4 (METHOD_DATA =  5 (DIRECTORY = d:\app\oracle\wallet)  6  )  7  )  8  9 SQLNET.AUTHENTICATION_SERVICES = (TCPS,NTS) 10 SSL_CLIENT_AUTHENTICATION = FALSE 11 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

    

復制代碼
 1 orcl=
 2 (DESCRIPTION=  3 (ADDRESS=  4 (PROTOCOL=TCPS)  5 (HOST=192.168.200.249)  6 (PORT=2484)  7  )  8 (CONNECT_DATA=  9 (SERVER=dedicated) 10 (SID=orcl) 11   ) 12 ) 
復制代碼

  至此,客戶端配置完成,可以連接測試

測試連接

  c:\>sqlplus sys/manunkind@//192.168.200.249:2484/orcl

  僅僅連接上去,並不能說明數據就是加密傳輸的,還需要進一步的驗證,最簡單的方式的把兩種連接方式下的數據傳輸抓包、分析。這樣才能說明問題。

 

轉載於:https://www.cnblogs.com/lushengle/p/8352916.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM