กำหนดค่า 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 กำหนดให้เซิร์ฟเวอร์ส่งใบรับรองทั้งหมดในลูกโซ่ของตน ยกเว้นใบรับรองรูท แต่เซิร์ฟเวอร์บางเซิร์ฟเวอร์ไม่เป็นไปตามข้อกำหนด หากเซิร์ฟเวอร์ของคุณไม่ส่งใบรับรองระดับกลาง คุณสามารถแก้ไขเซิร์ฟเวอร์เพื่อส่งต่อใบรับรองระดับกลางอย่างเหมาะสม หรือติดตั้งใบรับรองระดับกลางในที่จัดเก็บระบบรูทที่น่าเชื่อถือ อีกทางหนึ่ง คุณสามารถเลือกที่จะฝังใบรับรองในแหล่งข้อมูลหรือกำหนดค่าที่จัดเก็บที่เชื่อถือได้ด้วยพร็อพเพอร์ตี้ไดรเวอร์

  1. ใน Windows ค้นหา “ใบรับรอง”
  2. เลือกจัดการใบรับรองคอมพิวเตอร์
  3. จากเมนูการดำเนินการ ให้เลือกงานทั้งหมด จากนั้นให้ทำหนึ่งอย่างดังต่อไปนี้โดยขึ้นอยู่กับเวอร์ชันของ Windows
    • เลือกนำเข้าจากนั้นเลือกเครื่องในตัว
    • เลือกค้นหาใบรับรอง
  4. เบราว์เซอร์เพื่อค้นหาไฟล์ใบรับรองของคุณ
  5. นำเข้าไปยัง “ผู้ออกใบรับรองระดับรูทที่เชื่อถือได้”

สำหรับ Mac

ในการติดตั้งใบรับรองที่กำหนดเองบน Mac ให้ทำตามขั้นตอนเหล่านี้เพื่อนำเข้าใบรับรองไปยังคีย์เชน “ระบบ”

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

  1. ไปที่ https://support.apple.com/guide/keychain-access/add-certificates-to-a-keychain-kyca2431/mac(ลิงก์จะเปิดในหน้าต่างใหม่).
  2. นำเข้าใบรับรองลงในคีย์เชนของ “ระบบ” (ไม่ใช่ “รูทของระบบ”)
  3. เปิดใช้งานความน่าเชื่อถือดังนี้
    1. ในแอป Keychain ให้คลิกขวาที่ใบรับรองใหม่
    2. เลือกรับข้อมูล
    3. ในกล่องโต้ตอบ ให้เปิดหัวข้อความน่าเชื่อถือแล้วเลือกเมื่อใช้ใบรับรองนี้เชื่อถือเสมอ

สำหรับ 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 ที่นั่น

  1. แก้ไขไฟล์ .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. บันทึกไฟล์ .properties ไปยังโฟลเดอร์แหล่งข้อมูลที่เหมาะสม ทั้งนี้ขึ้นอยู่กับผลิตภัณฑ์ Tableau หากคุณไม่แน่ใจ โปรดดูรายชื่อไดเรกทอรีที่เป็นไปได้ทั้งหมดในปรับแต่งและปรับตั้งการเชื่อมต่อ
  3. หากคุณเผยแพร่ไปยัง 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(ลิงก์จะเปิดในหน้าต่างใหม่)

ดูเพิ่มเติม

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