กำหนดค่า SSL สำหรับการเชื่อมต่อ JDBC
ตัวเชื่อมต่อ JDBC หลายตัวรองรับ SSL แบบทางเดียว (มาตรฐาน) และบางตัวรองรับ SSL แบบสองทาง สำหรับตัวเชื่อมต่อที่ไม่รองรับการใช้ Tableau อย่างชัดเจน คุณอาจเปิดใช้งานโดยปรับแต่งได้ มีวิธีการที่แตกต่างกันในการกำหนดค่า SSL สำหรับทั้งสองประเภท และคุณสามารถใช้วิธีที่เหมาะสมที่สุดสำหรับสภาพแวดล้อมของคุณได้
หมายเหตุ:สำหรับ Tableau Cloud หากใบรับรองเซิร์ฟเวอร์ของคุณไม่มีการลงนามโดย CA ของรูทสาธารณะทั่วไป และคุณไม่มีตัวเลือกในการฝังใบรับรอง คุณสามารถใช้ Tableau Bridge ได้ วิธีนี้จะช่วยให้คุณสามารถกำหนดค่าใบรับรองและคีย์ส่วนตัวตามต้องการ
SSL ทางเดียวสำหรับการเชื่อมต่อ JDBC
หากคุณใช้ SSL แบบปกติ (ทางเดียว) กับตัวเชื่อมต่อที่ใช้ JDBC และคุณมีใบรับรองที่ลงนามเอง หรือใบรับรองที่ลงนามโดยผู้ออกใบรับรองที่ไม่เปิดเผยต่อสาธารณะ (CA) คุณจะต้องกำหนดค่าความเชื่อถือสำหรับใบรับรอง
ด้วย Tableau คุณสามารถกำหนดค่าความเชื่อถือ SSL แบบทางเดียวสำหรับการเชื่อมต่อ JDBC โดยใช้หนึ่งในวิธีเหล่านี้
ฝังใบรับรอง
ตัวเชื่อมต่อบางตัวรองรับการฝังใบรับรองในเวิร์กบุ๊กหรือแหล่งข้อมูล หากพร้อมใช้งาน คุณสามารถใช้ Tableau Desktop เพื่อฝังใบรับรอง CA
ติดตั้งใบรับรองในที่จัดเก็บของระบบที่น่าเชื่อถือ
หากไม่สามารถฝังได้ คุณจะต้องใช้วิธีอื่นในการกำหนดค่าความน่าเชื่อถือ นอกจากนี้ การทำเช่นนี้อาจง่ายกว่าการฝังใบรับรองในทุกเวิร์กบุ๊ก มีคำแนะนำสำหรับแพลตฟอร์ม Windows, Mac และ Linux ด้านล่างนี้
ตำแหน่งที่จัดเก็บความน่าเชื่อถือเริ่มต้นสำหรับ Tableau Server คือ:
/opt/tableau/tableau_server/packages/repository.20233.24.0514.1218/jre/lib/security/cacerts
สำหรับ Windows:
คุณสามารถติดตั้ง CA หรือใบรับรองที่ลงนามด้วยตนเองในที่จัดเก็บใบรับรองรูทที่น่าเชื่อถือของ Windows Java Runtime จะค้นหา CA ที่เชื่อถือได้ในที่จัดเก็บของระบบรูทที่น่าเชื่อถือ ไม่ได้ดูในที่จัดเก็บใบรับรองระดับกลาง
หมายเหตุ: หากคุณติดตั้ง CA รูทแล้ว แต่ยังประสบปัญหาในการเชื่อมต่อ อาจมีสาเหตุมาจากใบรับรองระดับกลางหายไป แม้ว่ามาตรฐาน TLS กำหนดให้เซิร์ฟเวอร์ส่งใบรับรองทั้งหมดในลูกโซ่ของตน ยกเว้นใบรับรองรูท แต่เซิร์ฟเวอร์บางเซิร์ฟเวอร์ไม่เป็นไปตามข้อกำหนด หากเซิร์ฟเวอร์ของคุณไม่ส่งใบรับรองระดับกลาง คุณสามารถแก้ไขเซิร์ฟเวอร์เพื่อส่งต่อใบรับรองระดับกลางอย่างเหมาะสม หรือติดตั้งใบรับรองระดับกลางในที่จัดเก็บระบบรูทที่น่าเชื่อถือ อีกทางหนึ่ง คุณสามารถเลือกที่จะฝังใบรับรองในแหล่งข้อมูลหรือกำหนดค่าที่จัดเก็บที่เชื่อถือได้ด้วยพร็อพเพอร์ตี้ไดรเวอร์
- ใน Windows ค้นหา “ใบรับรอง”
- เลือกจัดการใบรับรองคอมพิวเตอร์
- จากเมนูการดำเนินการ ให้เลือกงานทั้งหมด จากนั้นให้ทำหนึ่งอย่างดังต่อไปนี้โดยขึ้นอยู่กับเวอร์ชันของ Windows
- เลือกนำเข้าจากนั้นเลือกเครื่องในตัว
- เลือกค้นหาใบรับรอง
- เบราว์เซอร์เพื่อค้นหาไฟล์ใบรับรองของคุณ
- นำเข้าไปยัง “ผู้ออกใบรับรองระดับรูทที่เชื่อถือได้”
สำหรับ Mac
ในการติดตั้งใบรับรองที่กำหนดเองบน Mac ให้ทำตามขั้นตอนเหล่านี้เพื่อนำเข้าใบรับรองไปยังคีย์เชน “ระบบ”
หมายเหตุ: การโหลดใบรับรองจากคีย์เชนบน Mac ใช้ได้กับไดรเวอร์ส่วนใหญ่ แต่ไม่ใช่ทั้งหมด สำหรับไดร์เวอร์อื่น คุณอาจจำเป็นต้องใช้ไฟล์ .properties เพื่อกำหนดค่าที่เก็บที่เชื่อถือได้ หากต้องการข้อมูลเพิ่มเติม โปรดดูปรับแต่งและปรับตั้งการเชื่อมต่อ
- ไปที่ https://support.apple.com/guide/keychain-access/add-certificates-to-a-keychain-kyca2431/mac(ลิงก์จะเปิดในหน้าต่างใหม่).
- นำเข้าใบรับรองลงในคีย์เชนของ “ระบบ” (ไม่ใช่ “รูทของระบบ”)
- เปิดใช้งานความน่าเชื่อถือดังนี้
- ในแอป Keychain ให้คลิกขวาที่ใบรับรองใหม่
- เลือกรับข้อมูล
- ในกล่องโต้ตอบ ให้เปิดหัวข้อความน่าเชื่อถือแล้วเลือกเมื่อใช้ใบรับรองนี้เชื่อถือเสมอ
สำหรับ Linux:
การกระจาย Linux หลายรุ่นจะสร้างที่จัดเก็บที่เชื่อถือได้ในรูปแบบ Java จากใบรับรองระบบ คุณอาจต้องติดตั้ง Java จากตัวจัดการแพ็กเกจเพื่อสร้างไฟล์นี้
สิ่งนี้ทำให้ JRE สามารถใช้ใบรับรองเดียวกันกับระบบปฏิบัติการ
หมายเหตุ: Tableau Server จะค้นหาไฟล์นี้ในตำแหน่งมาตรฐาน/etc/ssl/certs/java/cacerts
/etc/pki/java/cacerts
ในการกำหนดค่าตำแหน่งอื่น ให้เรียกใช้
tsm configuration set -k native_api.ConnectivityTrustStore -v <path-to-cacerts> --force-keys
ไฟล์นี้ควร
- มี CA ที่เชื่อถือได้และใบรับรองที่ลงนามเองทั้งหมด
- มีเฉพาะคีย์สาธารณะเท่านั้น
- อยู่ในรูปแบบ JKS
- ผู้ใช้ที่ไม่มีสิทธิพิเศษ Tableau สามารถอ่านได้ (“เรียกใช้งานในฐานะผู้ใช้”)
- ใช้ “เปลี่ยน” รหัสผ่าน JKS เริ่มต้น
หากต้องการติดตั้ง CA แบบกำหนดเองหรือใบรับรองที่ลงนามเอง โปรดดูเอกสารประกอบสำหรับการกระจายของคุณ เรียกใช้คำสั่งที่เหมาะสมเพื่อสร้างคีย์สโตร์ ตัวอย่าง:
update-ca-certificates
ใช้พร็อพเพอร์ตี้ของไดรเวอร์ที่กำหนดเอง
คุณสามารถปรับแต่งตัวเลือกการเชื่อมต่อ JDBC รวมทั้งตำแหน่งของที่จัดเก็บที่เชื่อถือได้ด้วยไฟล์พร็อพเพอร์ตี้ นี่คือไฟล์ข้อความธรรมดาที่มีคู่คีย์ค่าสำหรับพารามิเตอร์การเชื่อมต่อแต่ละตัว
ตัวอย่างเช่น บรรทัดในไฟล์พร็อพเพอร์ตี้นี้ได้รับการใช้เพื่อกำหนดการตั้งค่าความน่าเชื่อถือ:
javax.net.ssl.trustStore=C:\\My_Folder\\truststore.jks
javax.net.ssl.trustStoreType=JKS
javax.net.ssl.trustStorePassword=password
หมายเหตุ: สำหรับรายละเอียดเกี่ยวกับการตั้งค่าพร็อพเพอร์ตี้เฉพาะ โปรดดูเอกสารประกอบสำหรับไดรเวอร์ของคุณ
เมื่อคุณสร้างไฟล์และบันทึกลงในตำแหน่งที่ถูกต้อง พร็อพเพอร์ตี้ในไฟล์จะได้รับการใช้กับการเชื่อมต่อ JDBC ทั้งหมดกับประเภทแหล่งข้อมูลเดียวกัน
หากคุณใช้ตัวเชื่อมต่อ “ฐานข้อมูลอื่น (JDBC)” ทั่วไป คุณสามารถระบุไฟล์พร็อพเพอร์ตี้ได้โดยตรงในกล่องโต้ตอบการเชื่อมต่อ
หากต้องการข้อมูลเพิ่มเติม โปรดดูปรับแต่งและปรับตั้งการเชื่อมต่อ(ลิงก์จะเปิดในหน้าต่างใหม่)
SSL แบบสองทางสำหรับการเชื่อมต่อ JDBC
การเชื่อมต่อ JDBC บางรายการ เช่น Postgres สามารถกำหนดค่าให้ใช้การตรวจสอบสิทธิ์ SSL แบบสองทางได้ คุณสามารถกำหนดค่าได้โดยใช้ไฟล์ .properties เพื่อระบุตำแหน่งและรายละเอียดของที่เก็บที่เชื่อถือได้และคีย์
ใช้ไฟล์ .properties เพื่อกำหนดค่าใบรับรองไคลเอ็นต์และคีย์ส่วนตัว
หมายเหตุ: สำหรับ Tableau Cloud หากคุณต้องใช้ SSL แบบสองทางและตัวเชื่อมต่อของคุณไม่มีตัวเลือกในการฝังคีย์ คุณจะต้องใช้ Tableau Bridge และตั้งค่าการกำหนดค่า SSL ที่นั่น
- แก้ไขไฟล์ .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 - บันทึกไฟล์ .properties ไปยังโฟลเดอร์แหล่งข้อมูลที่เหมาะสม ทั้งนี้ขึ้นอยู่กับผลิตภัณฑ์ Tableau หากคุณไม่แน่ใจ โปรดดูรายชื่อไดเรกทอรีที่เป็นไปได้ทั้งหมดในปรับแต่งและปรับตั้งการเชื่อมต่อ
- หากคุณเผยแพร่ไปยัง Tableau Server ตรวจสอบว่าคุณติดตั้งไฟล์ .properties, truststore.jks และ keystore.jks ในตำแหน่งที่เหมาะสมสำหรับแต่ละโหนดไฟล์ Tableau Server
หากคุณใช้วิธีนี้ คุณไม่จำเป็นต้องอัปโหลดใบรับรองและคีย์ผ่านกล่องโต้ตอบ SSL เพียงแต่คลิกต้องใช้ SSL แทน ซึ่งทำให้ตัวเชื่อมต่อ JDBC อ่านตำแหน่งของคีย์สโตร์และที่เก็บที่เชื่อถือได้จากไฟล์ .properties
การแก้ปัญหา
ปัญหาในการใช้ SSL มักเกี่ยวข้องกับการกำหนดค่าใบรับรองที่ไม่ถูกต้อง
วิธีหนึ่งในการเริ่มต้นระบุแหล่งที่มาของปัญหาคือการตรวจสอบว่ามีใบรับรองใดที่ใช้งานอยู่และติดตั้งอยู่ที่ใด เมื่อติดตั้งเครื่องมือ OpenSSL CLI แล้ว คุณจะสามารถใช้คำสั่ง s_client
:
openssl s_client -connect hostname:port -showcerts
แทนที่ hostname
และ port
ด้วยค่าที่เหมาะสมกับระบบที่คุณกำลังทดสอบ เมื่อดำเนินการแล้ว คำสั่งนี้จะพยายามสร้างการเชื่อมต่อ SSL และแสดงใบรับรองที่ส่งจากเซิร์ฟเวอร์
ฐานข้อมูลบางอย่างมีการผสานรวม TLS ที่กำหนดเองและ openssl รองรับฐานข้อมูลเหล่านี้บางรายการโดยตรง ในเวอร์ชันล่าสุด คือ postgres และ mysql หากคุณกำลังเชื่อมต่อกับฐานข้อมูลที่เข้ากันได้กับ postgres หรือ mysql และคุณประสบปัญหากับคำสั่งข้างต้น คุณสามารถลองใช้ตัวเลือก -starttls เพื่อเปิดใช้งานโปรโตคอลที่ใช้โดยฐานข้อมูลของคุณ ตัวอย่าง:
openssl s_client -connect hostname:port -showcerts -starttls postgres
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการแก้ไขปัญหา OpenSSL โปรดดูการใช้คำสั่ง OpenSSL s_client เพื่อทดสอบการเชื่อมต่อ SSL(ลิงก์จะเปิดในหน้าต่างใหม่) คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับ OpenSSL s_client ได้ในเอกสาร OpenSSL(ลิงก์จะเปิดในหน้าต่างใหม่)
ดูเพิ่มเติม
- ต้องใช้ SSL สำหรับการเชื่อมต่อ Oracle JDBC(ลิงก์จะเปิดในหน้าต่างใหม่) คำแนะนำในการติดตั้งสำหรับการเพิ่มใบรับรอง SSL ที่เชื่อถือได้ในการเชื่อมต่อ Oracle JDBC
- การเชื่อมต่อ Oracle JDBC กับ SSL