การเชื่อมต่อ Oracle JDBC กับ SSL
หากคุณทำการเชื่อมต่อกับเซิร์ฟเวอร์ SSL ( Secure Socket Layer) ให้เลือกช่องทำเครื่องหมายต้องใช้ SSL
Oracle เริ่มใช้ตัวเชื่อมต่อ JDBC ตั้งแต่เวอร์ชัน 2020.2 หากแหล่งข้อมูล Oracle ของคุณได้รับการกำหนดค่าให้ใช้การตรวจสอบสิทธิด้วย SSL แบบทางเดียวหรือสองทาง คุณสามารถรวมใบรับรองและ/หรือคีย์ที่เหมาะสมเพื่อเชื่อมต่อได้
ต้องใช้ SSL
หากการเชื่อมต่อของคุณต้องใช้ SSL ให้ทำดังต่อไปนี้
- จากกล่องโต้ตอบตัวเชื่อมต่อ ให้คลิกต้องใช้ SSL
- กำหนดค่า SSL ตามความเหมาะสมสำหรับการเชื่อมต่อของคุณ
- หากคุณใช้ใบรับรองที่ลงนามด้วยตนเองหรือใบรับรองที่ลงนามโดย CA ส่วนตัว คุณอาจต้องกำหนดค่าความน่าเชื่อถือสำหรับการเชื่อมต่อ SSL แบบทางเดียว โปรดดูกำหนดค่า SSL แบบทางเดียวสำหรับ Oracle
- หากคุณใช้ SSL แบบสองทาง คุณจะต้องกำหนดค่าคีย์ไคลเอ็นต์ของคุณ ดูการกำหนดค่า 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, ใบรับรองไคลเอ็นต์ และคีย์ไคลเอ็นต์
- ให้ทำตามขั้นตอนในกำหนดค่า SSL แบบทางเดียวสำหรับ Oracleเพื่อกำหนดค่าความน่าเชื่อถือของเซิร์ฟเวอร์ หากจำเป็น
- คลิกใบรับรองไคลเอ็นต์ >>
- ระบุตำแหน่งสำหรับใบรับรองไคลเอ็นต์และคีย์ไคลเอ็นต์
ใบรับรองและคีย์ส่วนตัวควรอยู่ในรูปแบบ PEM ที่ไม่ได้เข้ารหัส ดูคำแนะนำในเอกสารนี้ในภายหลังสำหรับคำแนะนำในการแปลงเป็นรูปแบบที่ถูกต้อง
ตัวเลือกที่ 2: ใช้ไฟล์พร็อพเพอร์ตี้เพื่อกำหนดค่าใบรับรองไคลเอ็นต์และคีย์ส่วนตัว
หากต้องการใช้ไฟล์พร็อพเพอร์ตี้สำหรับใบรับรองและการกำหนดค่าคีย์
- แก้ไขไฟล์ 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 - บันทึก oracle.properties ลงในโฟลเดอร์ <เอกสาร>\ที่เก็บของ Tableau ของฉัน\แหล่งข้อมูล
- คัดลอก 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:
- ส่งออกรูปแบบ JKS เป็นรูปแบบ PKCS12:
keytool -importkeystore -srckeystore truststore.jks -destkeystore truststore.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass "password" -deststorepass "password"
- รับไฟล์ PEM จาก PKCS12:
openssl pkcs12 -in truststore.p12 -out serverca.pem
หากต้องการส่งออกใบรับรองเซิร์ฟเวอร์และคีย์ไคลเอ็นต์จากที่เก็บที่น่าเชื่อถือ JKS ไปยังไฟล์ PEM โดยใช้เครื่องมือคีย์และ OpenSSL:
- ส่งออกใบรับรองจากที่เก็บที่น่าเชื่อถือดังนี้
- ส่งออกรูปแบบ JKS เป็นรูปแบบ PKCS12:
keytool -importkeystore -srckeystore truststore.jks -destkeystore truststore.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass "password" -deststorepass "password"
- รับไฟล์ PEM จาก PKCS12:
openssl pkcs12 -in truststore.p12 -out serverca.pem
- ส่งออกรูปแบบ JKS เป็นรูปแบบ PKCS12:
- ส่งออกคีย์ไคลเอ็นต์และใบรับรองไคลเอ็นต์จากคีย์สโตร์ดังนี้
- ใช้เครื่องมือคีย์เพื่อแปลงรูปแบบ JKS เป็นรูปแบบ PCKS12:
keytool.exe -importkeystore -srckeystore keystore.jks -destkeystore keystore.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass "password" -deststorepass "password"
- ใช้ OpenSSL เพื่อส่งออกใบรับรองไคลเอ็นต์:
openssl pkcs12 -in keystore.p12 -nokeys -out clientcert.pem
- ใช้ OpenSSL เพื่อส่งออกคีย์ไคลเอ็นต์:
openssl pkcs12 -in keystore.p12 -nocerts -out clientkeyEncrypted.pem
- ใช้ OpenSSL เพื่อแปลงเวอร์ชันที่เข้ารหัสเป็นรูปแบบ PKCS8:
openssl pkcs8 -topk8 -nocrypt -in clientkeyEncrypted.pem -out clientkey.pem
- ใช้เครื่องมือคีย์เพื่อแปลงรูปแบบ JKS เป็นรูปแบบ PCKS12:
ดูเพิ่มเติม
- กำหนดค่า SSL สำหรับการเชื่อมต่อ JDBC - ข้อมูลทั่วไปเพิ่มเติมเกี่ยวกับการติดตั้งใบรับรอง SSL ที่เชื่อถือได้สำหรับการเชื่อมต่อ JDBC