การเชื่อมต่อ Oracle JDBC กับ SSL

หากคุณทำการเชื่อมต่อกับเซิร์ฟเวอร์ SSL ( Secure Socket Layer) ให้เลือกช่องทำเครื่องหมายต้องใช้ SSL

Oracle เริ่มใช้ตัวเชื่อมต่อ JDBC ตั้งแต่เวอร์ชัน 2020.2 หากแหล่งข้อมูล Oracle ของคุณได้รับการกำหนดค่าให้ใช้การตรวจสอบสิทธิด้วย SSL แบบทางเดียวหรือสองทาง คุณสามารถรวมใบรับรองและ/หรือคีย์ที่เหมาะสมเพื่อเชื่อมต่อได้

ต้องใช้ SSL

หากการเชื่อมต่อของคุณต้องใช้ SSL ให้ทำดังต่อไปนี้

  1. จากกล่องโต้ตอบตัวเชื่อมต่อ ให้คลิกต้องใช้ SSL

  2. กำหนดค่า SSL ตามความเหมาะสมสำหรับการเชื่อมต่อของคุณ

กำหนดค่า SSL แบบทางเดียวสำหรับ Oracle

หากต้องการกำหนดค่าความน่าเชื่อถือสำหรับใบรับรองเซิร์ฟเวอร์ของคุณ โปรดดูคำแนะนำทั่วไปสำหรับตัวเชื่อมต่อ JDBC ที่นี่: กำหนดค่า SSL แบบทางเดียวสำหรับการเชื่อมต่อ JDBC

หากคุณตัดสินใจใช้ไฟล์พร็อพเพอร์ตี้เพื่อกำหนดค่าความน่าเชื่อถือ ให้ใช้พร็อพเพอร์ตี้ต่อไปนี้สำหรับไดรเวอร์ Oracle JDBC

javax.net.ssl.trustStore=C:\\My_Folder\\truststore.jks
javax.net.ssl.trustStoreType=JKS
javax.net.ssl.trustStorePassword=password

หมายเหตุ: หากต้องการเผยแพร่เวิร์กบุ๊กไปยัง Tableau Server ทั้งคอมพิวเตอร์ Tableau Desktop และ Tableau Server ต้องมีสำเนาของไฟล์พร็อพเพอร์ตี้ Oracle และไฟล์ truststore.jks เดียวกัน

กำหนดค่า SSL แบบสองทาง

ตัวเลือกสำหรับการกำหนดค่าการรองรับ SSL แบบสองทางด้วยการเชื่อมต่อ Oracle มี 2 ตัวเลือกดังนี้

ตัวเลือกที่ 1: ฝังใบรับรองไคลเอ็นต์และคีย์ส่วนตัวในแหล่งข้อมูล

หากต้องการฝังใบรับรอง SSL, ใบรับรองไคลเอ็นต์ และคีย์ไคลเอ็นต์

  1. ให้ทำตามขั้นตอนในกำหนดค่า SSL แบบทางเดียวสำหรับ Oracleเพื่อกำหนดค่าความน่าเชื่อถือของเซิร์ฟเวอร์ หากจำเป็น
  2. คลิกใบรับรองไคลเอ็นต์ >>

  3. ระบุตำแหน่งสำหรับใบรับรองไคลเอ็นต์และคีย์ไคลเอ็นต์
    ใบรับรองและคีย์ส่วนตัวควรอยู่ในรูปแบบ PEM ที่ไม่ได้เข้ารหัส ดูคำแนะนำในเอกสารนี้ในภายหลังสำหรับคำแนะนำในการแปลงเป็นรูปแบบที่ถูกต้อง

ตัวเลือกที่ 2: ใช้ไฟล์พร็อพเพอร์ตี้เพื่อกำหนดค่าใบรับรองไคลเอ็นต์และคีย์ส่วนตัว

หากต้องการใช้ไฟล์พร็อพเพอร์ตี้สำหรับใบรับรองและการกำหนดค่าคีย์

  1. แก้ไขไฟล์ oracle.properties เพื่อแสดงการตั้งค่าคีย์สโตร์และที่เก็บที่น่าเชื่อถือ ใช้สิ่งต่อไปนี้เป็นตัวอย่าง อย่าลืมแทนที่ “โฟลเดอร์_ของฉัน” สำหรับตำแหน่งไฟล์ของคุณและ “<รหัสผ่าน>” ด้วยรหัสผ่านของคุณเอง เส้นทางบน OSX และ Linux ต้องแยกจากกันด้วยการใช้เพียง "/" เดียว

    javax.net.ssl.trustStore=C:\\My_Folder\\truststore.jks
    javax.net.ssl.trustStoreType=JKS
    javax.net.ssl.trustStorePassword=<password>
    javax.net.ssl.keyStore=C:\\My_Folder\\keystore.jks
    javax.net.ssl.keyStoreType=JKS
    javax.net.ssl.keyStorePassword=password

  2. บันทึก oracle.properties ลงในโฟลเดอร์ <เอกสาร>\ที่เก็บของ Tableau ของฉัน\แหล่งข้อมูล
  3. คัดลอก oracle.properties, truststore.jks และ keystore.jks ไปยังคอมพิวเตอร์ Tableau Server การดำเนินการนี้ช่วยให้สามารถเผยแพร่เวิร์กบุ๊กไปยัง Tableau Server ได้

หากคุณใช้วิธีนี้ คุณไม่จำเป็นต้องอัปโหลดใบรับรองและคีย์ผ่านกล่องโต้ตอบ SSL เพียงแต่คลิกต้องใช้ SSL แทน ซึ่งทำให้ตัวเชื่อมต่อ Oracle JDBC อ่านตำแหน่งของคีย์สโตร์และที่เก็บที่เชื่อถือได้จากไฟล์ oracle.properties

เผยแพร่เวิร์กบุ๊ก

หากต้องการเผยแพร่เวิร์กบุ๊กไปยัง Tableau Server ตรวจสอบให้แน่ใจว่าสิ่งต่อไปนี้เป็นจริง

  • หากคุณใช้ไฟล์พร็อพเพอร์ตี้ ทั้งคอมพิวเตอร์ Tableau Desktop และ Tableau Server ต้องมีสำเนาของไฟล์พร็อพเพอร์ตี้ Oracle, truststore.jks และ keystore.jks เดียวกัน
  • เซิร์ฟเวอร์ใช้ตัวเชื่อมต่อ Oracle JDBC เดียวกันกับคอมพิวเตอร์ Tableau Desktop
  • หากคุณใช้ตัวเลือกการฝัง ให้เลือกตัวเลือก "รหัสผ่านแบบฝัง" เมื่อคุณเผยแพร่

แปลงรูปแบบคีย์

การจัดเก็บคีย์ SSL มีหลายรูปแบบ ซึ่งประกอบด้วย:

  • Oracle Wallet
  • JKS - ใช้รูปแบบนี้หากคุณต้องการกำหนดค่าความน่าเชื่อถือ SSL โดยใช้ไฟล์พร็อพเพอร์ตี้
  • PEM - ใช้รูปแบบนี้หากคุณต้องการฝังคีย์ในแหล่งข้อมูลโดยใช้อินเทอร์เฟซ Tableau

ต่อไปนี้คือคำสั่งที่แนะนำบางส่วนที่คุณสามารถพิมพ์ได้ที่ข้อความแจ้งบรรทัดคำสั่งเพื่อแปลงคีย์ให้อยู่ในรูปแบบที่ถูกต้อง หากต้องการรายละเอียดเพิ่มเติม โปรดดูเอกสารของ Oracle

หากต้องการส่งออกใบรับรองเซิร์ฟเวอร์จาก Oracle Wallet ไปยังไฟล์ PEM:

orapki wallet export -wallet wallet_location -dn certificate_dn -cert output_certificate_filename.pem

หากต้องการส่งออกใบรับรองเซิร์ฟเวอร์และคีย์ไคลเอ็นต์จาก Oracle Wallet ไปยัง JKS:

orapki wallet pkcs12_to_jks -wallet ./ -pwd mypasswd -jksKeyStoreLoc ./ewalletK.jks -jksKeyStorepwd password -jksTrustStoreLoc ./ewalletT.jks -jksTrustStorepwd password

หากต้องการส่งออกใบรับรองเซิร์ฟเวอร์จากที่เก็บที่เชื่อถือได้ JKS ไปยังไฟล์ PEM โดยใช้ keytool และ OpenSSL:

  1. ส่งออกรูปแบบ JKS เป็นรูปแบบ PKCS12:

    keytool -importkeystore -srckeystore truststore.jks -destkeystore truststore.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass "password" -deststorepass "password"

  2. รับไฟล์ PEM จาก PKCS12:

    openssl pkcs12 -in truststore.p12 -out serverca.pem

หากต้องการส่งออกใบรับรองเซิร์ฟเวอร์และคีย์ไคลเอ็นต์จากที่เก็บที่น่าเชื่อถือ JKS ไปยังไฟล์ PEM โดยใช้เครื่องมือคีย์และ OpenSSL:

  1. ส่งออกใบรับรองจากที่เก็บที่น่าเชื่อถือดังนี้
    1. ส่งออกรูปแบบ JKS เป็นรูปแบบ PKCS12:

      keytool -importkeystore -srckeystore truststore.jks -destkeystore truststore.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass "password" -deststorepass "password"

    2. รับไฟล์ PEM จาก PKCS12:

      openssl pkcs12 -in truststore.p12 -out serverca.pem

  2. ส่งออกคีย์ไคลเอ็นต์และใบรับรองไคลเอ็นต์จากคีย์สโตร์ดังนี้
    1. ใช้เครื่องมือคีย์เพื่อแปลงรูปแบบ JKS เป็นรูปแบบ PCKS12:

      keytool.exe -importkeystore -srckeystore keystore.jks -destkeystore keystore.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass "password" -deststorepass "password"

    2. ใช้ OpenSSL เพื่อส่งออกใบรับรองไคลเอ็นต์:

      openssl pkcs12 -in keystore.p12 -nokeys -out clientcert.pem

    3. ใช้ OpenSSL เพื่อส่งออกคีย์ไคลเอ็นต์:

      openssl pkcs12 -in keystore.p12 -nocerts -out clientkeyEncrypted.pem

    4. ใช้ OpenSSL เพื่อแปลงเวอร์ชันที่เข้ารหัสเป็นรูปแบบ PKCS8:

      openssl pkcs8 -topk8 -nocrypt -in clientkeyEncrypted.pem -out clientkey.pem

ดูเพิ่มเติม

ขอบคุณสำหรับข้อเสนอแนะของคุณส่งข้อเสนอแนะของคุณเรียบร้อยแล้ว ขอขอบคุณ