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 โดยใช้ Server Admin ที่มีชื่อสามัญเดียวกับชื่อโฮสต์ของคอมพิวเตอร์เครื่องนั้น

ใน Terminal เรียกใช้คำสั่งนี้:

Mac OS X Server 10.5:

sudo slapconfig -setldapconfig -ssl on -sslkey [path to SSL key] -sslcert [path to SSL cert] -ssldomain [name of the certificate]

Mac OS X Server 10.6:

sudo slapconfig -setldapconfig -ssl on -sslkey [path to SSL key] -sslcert [path to SSL cert]

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

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

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

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

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

openssl s_client -connect [hostname of the server]:636

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

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

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

openssl s_client -connect [hostname of the server]:636 -CAfile /etc/openldap/certs/hostname

สิ่งนี้ควรแสดงให้เห็นถึงเอาต์พุตแบบเดียวกับก่อนหน้า โดยมีการเปลี่ยนแปลงต่อไปนี้ที่บรรทัดสุดท้าย: ตรวจสอบรหัสตอบกลับเป็น: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 (ยูทิลิตี้ OpenSSL) เพื่อให้ใบรับรองอยู่ในรูปแบบแฮช สำหรับใบรับรองแต่ละใบ 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://[hostname of the server] -b [searchbase]

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

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