Open Directory: การเปิดใช้งาน SSL สำหรับ Open Directory ด้วย Replica

คุณสามารถเปิดใช้งาน Secure Sockets Layer (SSL) เพื่อมอบการสื่อสารที่มีการเข้ารหัสระหว่าง Open Directory Master, Replica และคอมพิวเตอร์ที่เข้าถึงโดเมนไดเรกทอรี LDAP ได้ SSL จะใช้ใบรับรองดิจิทัลเพื่อให้ข้อมูลประจำตัวที่ได้รับการรับรองสำหรับเซิร์ฟเวอร์ คุณสามารถใช้ใบรับรองที่ลงชื่อด้วยตนเองหรือใบรับรองที่ได้รับจากหน่วยงานให้บริการออกใบรับรองได้

เมื่อ Open Directory Master และคอมพิวเตอร์ Replica ของคุณพร้อมแล้ว ให้ทำดังนี้

  1. ตรวจสอบให้แน่ใจว่าทั้ง Open Directory Master และคอมพิวเตอร์ Replica รองรับการเชื่อมต่อ SSL

  2. เปิดใช้งานการเข้ารหัส SSL บน Open Directory Master โดยใช้ใบรับรองที่ลงชื่อด้วยตนเอง โดยตั้งชื่อทั่วไปเป็นชื่อโฮสต์ของ Master

  3. เปิดใช้งาน SSL บนคอมพิวเตอร์ Replica ทุกเครื่อง: สร้างใบรับรองที่ลงชื่อด้วยตนเองบนคอมพิวเตอร์ Replica โดยใช้ผู้ดูแลระบบเซิร์ฟเวอร์ที่มีชื่อทั่วไปเหมือนกับชื่อโฮสต์ของคอมพิวเตอร์เครื่องนั้น

ในเทอร์มินัล ให้ใช้คำสั่งนี้:

Mac OS X Server 10.5:

sudo slapconfig -setldapconfig -ssl on -sslkey [พาธไปยังคีย์ SSL] -sslcert [พาธไปยังใบรับรอง SSL] -ssldomain [ชื่อใบรับรอง]

Mac OS X Server 10.6:

sudo slapconfig -setldapconfig -ssl on -sslkey [พาธไปยังคีย์ SSL] -sslcert [พาธไปยังใบรับรอง SSL]

(ตามค่าเริ่มต้น ผู้ดูแลระบบเซิร์ฟเวอร์จะจัดเก็บใบรับรองไว้ภายใต้ /etc/certificates และอย่าลืมใส่ชื่อไฟล์ในพาธด้วย)

ติดตั้งใบรับรองจาก Open Directory Master และ Replica

เพื่อให้คอมพิวเตอร์ไคลเอนต์สามารถใช้ SSL ได้ จะต้องคัดลอกใบรับรองจากแต่ละเซิร์ฟเวอร์ในคลัสเตอร์ไดเรกทอรีไปยังคอมพิวเตอร์ไคลเอนต์ หากต้องการติดตั้งใบรับรองจาก Open Directory Master และคอมพิวเตอร์ Replica ให้ทำดังนี้

1. บนคอมพิวเตอร์ไคลเอนต์แต่ละเครื่อง ให้สร้างไดเรกทอรี /etc/openldap/certs

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

openssl s_client -connect [ชื่อโฮสต์ของเซิร์ฟเวอร์]:636

3. คัดลอกบรรทัดระหว่าง "---BEGIN CERTIFICATE---" และ "---END CERTIFICATE---" ไปยังไฟล์ชื่่อ "hostname"

4. วางไฟล์ hostname ใหม่ที่นี่:/etc/openldap/certs/

5. คุณสามารถทดสอบใบรับรองได้โดยใช้คำสั่งนี้

openssl s_client -connect [ชื่อโฮสต์ของเซิร์ฟเวอร์]:636 -CAfile /etc/openldap/certs/hostname

ซึ่งควรแสดงผลเอาต์พุตที่คล้ายกับก่อนหน้านี้ โดยบรรทัดสุดท้ายจะเปลี่ยนแปลงเป็น verify return code:0(ok) แทนที่จะเป็น 18 หรือ 19 ที่คุณได้รับก่อนหน้านี้

6. หากคุณมีใบรับรองเพียงใบเดียว (เช่น เซิร์ฟเวอร์ LDAP เซิร์ฟเวอร์เดียวที่เปิดใช้งาน SSL อยู่) ให้เพิ่มรายการต่อไปนี้ลงในไฟล์ /etc/openldap/ldap.conf

TLS_CACERT /etc/openldap/certs/[ชื่อโฮสต์ของเซิร์ฟเวอร์]

หากคุณเปิดใช้งานเซิร์ฟเวอร์ LDAP หลายเซิร์ฟเวอร์ที่เปิดใช้งาน SSL อยู่

คุณจะต้องระบุเซิร์ฟเวอร์ทีละเครื่อง หรือใส่เซิร์ฟเวอร์ทั้งหมดไว้ในไดเรกทอรีเดียวกันและชี้ ldap.conf ไปยังเซิร์ฟเวอร์เหล่านั้น โดยใช้ขั้นตอนต่อไปนี้

1. สำหรับแต่ละเซิร์ฟเวอร์ในคลัสเตอร์ LDAP คุณจะต้องได้รับใบรับรองก่อนใช้คำสั่งเปิดใช้งาน openssl s_client ต่อไปนี้

openssl s_client -connect [ชื่อโฮสต์ของเซิร์ฟเวอร์]:636

2. เมื่อคุณได้รับใบรับรองแล้ว ให้ใช้ c_hash (ยูทิลิตี้ SSL) เพื่อทำให้ใบรับรองอยู่ในรูปแบบแฮช สำหรับใบรับรองแต่ละใบ c_hash จะระบุชื่อที่จะใช้ในการเปลี่ยนชื่อไฟล์ใบรับรองใน /etc/openldap/certs ดังนี้

/System/Library/OpenSSL/misc/c_hash /etc/openldap/certs/hostname

เอาต์พุตควรมีลักษณะคล้ายคลึงกับเอาต์พุตต่อไปนี้: 03be8eb2.0 => /etc/openldap/certs/hostname

3. เมื่อคุณได้รับชื่อแฮชแล้ว ให้เปลี่ยนชื่อไฟล์ใบรับรองที่มีอยู่ด้วยตนเอง

ตัวอย่าง:

mv /etc/openldap/certs/hostname /etc/openldap/certs/03be8eb2.0

4. เมื่อคุณเรียกใช้ใบรับรองทั้งหมดผ่านทาง c_hash แล้ว ให้แก้ไขไฟล์ /etc/openldap/ldap.conf ด้วย

TLS_CACERTDIR /etc/openldap/certs/

5. ลบรายการ TLS_CACERTDIR ใดๆ ก่อนหน้านี้ที่อาจอยู่ในไฟล์ ldap.conf

6. ตรวจสอบด้วยคำสั่ง ldapsearch ดังนี้

ldapsearch -v -x -H ldaps://[ชื่อโฮสต์ของเซิร์ฟเวอร์] -b [ฐานการค้นหา]

7. คุณอาจต้องรีสตาร์ทบริการไดเรกทอรี หากคุณได้พยายามตั้งค่าเซิร์ฟเวอร์ LDAP แล้ว ดังนี้

sudo killall DirectoryService

วันที่เผยแพร่: