MS Certificate Services สามารถเป็นผู้ใต้บังคับบัญชาถึง CA ที่สร้างด้วย OpenSSL ได้หรือไม่


16

ฉันต้องการตั้งค่าสิทธิ์การรับรองระดับองค์กรสำหรับโดเมนของฉัน ดังนั้นฉันสามารถออกใบรับรองเพื่อวัตถุประสงค์ต่างๆ ฉันต้องการปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดในการรูท CA เป็นออฟไลน์และตั้งค่า CA องค์กรของฉันเป็นสังกัด แต่ดูเหมือนว่าโง่ที่จะให้ลิขสิทธิ์ Windows แบบสมบูรณ์สำหรับงานนี้

สิ่งที่ฉันหวังว่าจะสามารถทำได้คือติดตั้งการแจกจ่ายสดลงในดิสก์ USB แฟลชแล้วติดตั้ง openssl และติดตั้ง CA ของฉันในแฟลชไดรฟ์ เมื่อฉันพร้อมที่จะสร้างรูทคีย์ / ใบรับรองฉันจะตัดการเชื่อมต่อคอมพิวเตอร์จากเครือข่ายและจากนั้นไม่เคยใช้ดิสก์ USB นั้นบนคอมพิวเตอร์ที่เชื่อมต่อกับเครือข่ายอีกครั้ง

ฉันจะสามารถลงชื่อและสร้างใบรับรอง CA รองสำหรับ CA องค์กร Windows ได้อย่างถูกต้องหรือไม่ซึ่งจะสามารถใช้งานได้ ฉันต้องใช้ตัวเลือกใดกับ OpenSSL เพื่อสร้าง CA และลงนามใบรับรอง CA รองอย่างถูกต้อง

ฉันพยายามค้นหาเว็บและนี่เป็นสิ่งเดียวที่ฉันสามารถค้นพบในหัวข้อนี้ แต่มันมาถึงปี 2008 และฉันไม่แน่ใจว่าบุคคลนั้นจะประสบความสำเร็จทุกคน


เพื่อความชัดเจนเครื่องมือไม่จำเป็นต้องเป็น OpenSSL แต่ฉันไม่ต้องการเรียกใช้ CA ขนาดใหญ่เช่น EJBCA ฉันกำลังมองหา CA น้ำหนักเบามากที่สามารถเรียกใช้ในสภาพแวดล้อม livecd / liveusb
Zoredache

คำตอบ:


14

ใช่มันใช้งานได้ดี ผู้ออกใบรับรอง Windows ไม่มีคุณสมบัติเกี่ยวกับการทำงานในฐานะผู้ใต้บังคับบัญชาสำหรับผู้ที่ไม่ใช่ Windows

ทดสอบกับรูท OpenSSL และผู้ใต้บังคับบัญชาของ Windows 2008 R2 ในโหมด Enterprise


สองสิ่งที่น่าเล่นกับสิ่งที่ MS CA คาดหวังในการกำหนดค่า OpenSSL:

  • ตำแหน่ง AIA และ CDP ที่ถูกต้องควรนำไปใช้กับใบรับรองหลักในส่วนที่กำหนดค่าโดยx509_extensionsคุณสมบัติของ[req]ส่วนสำหรับรูตที่ลงนามด้วยตนเอง บางสิ่งบางอย่างตามสายเหล่านี้:

    authorityInfoAccess = caIssuers;URI:http://test-rootca.test.local/root.pem
    crlDistributionPoints = URI:http://test-rootca.test.local/root.crl
    
  • การกำหนดค่า OpenSSL ที่กำหนดอาจไม่อนุญาตให้ใช้ CA รองตามค่าเริ่มต้น เปลี่ยนสำหรับคำขอที่เซ็นชื่อ (ตรวจสอบให้แน่ใจว่าไม่ได้อยู่ในตำแหน่งสำหรับคำขอที่ไม่ควรเป็น CA) สิ่งนี้จะอยู่ในส่วนที่กำหนดค่าโดยx509_extensionsคุณสมบัติของ[ca]ส่วน:

    basicConstraints=CA:TRUE
    certificatePolicies=2.5.29.32.0
    

ดังนั้นเราจะทำ CA เพื่อทดสอบ

ทำให้รากของคุณ:

openssl req -new -x509 -keyout /etc/ssl/private/root.key -out /etc/ssl/certs/root.pem -nodes -extensions v3_ca

ซอกับการตั้งค่าของคุณและสร้างไฟล์และไดเรกทอรีที่จำเป็นใน[ca]ส่วนของการกำหนดค่า OpenSSL ของคุณ

พร้อมที่จะรับสิ่งต่างๆจากไมโครซอฟท์ สร้าง CA รองของ Windows ด้วยการลงชื่อด้วยตนเอง

อัพโหลดการร้องขอใบรับรองไปยังเซิร์ฟเวอร์ OpenSSL ในขณะที่คุณกำลังดาวน์โหลดใบรับรองรูท นำเข้ามาไว้ในที่เก็บรากที่เชื่อถือได้ - ของคอมพิวเตอร์ไม่ใช่ผู้ใช้ของคุณ!

ออกใบรับรองรอง:

openssl ca -in test-subca.req
(you might need to specify a permissive policy manually with -policy, check your config)

หากไม่ได้ผล CA ของคุณอาจมีปัญหากับการกำหนดค่า - ไดเรกทอรี certs ใหม่ไฟล์ดัชนีไฟล์อนุกรม ฯลฯ ตรวจสอบข้อความแสดงข้อผิดพลาด

ถ้ามันเป็นเช่นนั้น หากคุณยังไม่มีให้สร้าง CRL และวางไว้ใน CDP ที่คุณกำหนดค่าไว้ด้านบน ฉันเพิ่งติดตั้ง Apache และติดขัดใน webroot:

openssl ca -gencrl -out /var/www/root.crl

และวางใบรับรองของคุณในตำแหน่ง AIA หากยังไม่ได้ดำเนินการ:

cp /etc/ssl/certs/root.pem /var/www/root.pem

ดาวน์โหลดใบรับรองรองที่ออกใหม่และติดตั้งลงใน CA ด้วยสแน็ปอิน MMC ของหน่วยงานออกใบรับรอง มันจะจับเกี่ยวกับปัญหาใด ๆ ที่มีความน่าเชื่อถือหรือการตรวจสอบ แต่ไม่มีการคัดค้านทางศีลธรรมในการรับมัน

ผลลัพธ์สุดท้าย; Windows CA ที่ใช้งานได้โดยไม่มีการร้องเรียนจาก Enterprise PKI snap-in พร้อมด้วย telltale OpenSSL Generated Certificateในแอตทริบิวต์

ทำงาน-CA


6

ฉันเห็นสิ่งที่คุณได้รับ แต่ฉันไม่คิดว่า OpenSSL เป็นเครื่องมือสำหรับงานนี้ คุณอาจต้องการดูโครงการ Open Source Certificate Authorityเช่นEJBCAซึ่งเน้นไปที่ฟังก์ชันนี้มากกว่า OpenSSL และมีเอกสารเฉพาะที่คุณสามารถใช้ได้

ฉันไม่เห็นเหตุผลที่แนวคิดไม่ทำงานเนื่องจากสิ่งที่คุณกำลังทำอยู่คือการลงนามในใบรับรองของผู้ใต้บังคับบัญชา หากคุณจ่ายเงินให้กับ CA สาธารณะเพื่อทำสิ่งนี้กับคุณคุณไม่จำเป็นต้องรู้หรือสนใจว่าพวกเขากำลังใช้เซิร์ฟเวอร์รสชาติใด

สิ่งที่คุณต้องใส่ใจคือ:

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

ฉันไม่สามารถพูดได้ว่าฉันได้ทำสิ่งนี้แล้ว แต่ฉันแน่ใจว่าถ้าคุณทำตามเอกสารเพื่อสร้าง CSR จากกล่องหน้าต่างจากนั้นทำตามเอกสาร CA ของคุณเพื่อสร้างใบรับรอง. p7k จาก CSR คุณควรจะปรับ

โดยวิธีการ - ฉันขอแนะนำให้คุณสร้าง CA ของคุณเป็นเครื่องเสมือนสำหรับไฮเปอร์ไวเซอร์ยอดนิยมเช่น Hyper-V หรือ VMware แทนที่จะเป็นดิสก์สำหรับบูตตรวจสอบให้แน่ใจว่าคุณเก็บไว้อย่างปลอดภัยที่ไหนสักแห่งที่สืบต่อมา ออฟไลน์เป็นระยะเพื่อให้แน่ใจว่าทำงานหรือถ่ายโอนไปยังสื่อ / เทคโนโลยีใหม่ CA ที่รูทอาจมีอายุการใช้งาน 10 หรือ 20 ปี ...


+1 OpenSSL ไม่ใช่เครื่องมือชั้นนำสำหรับการสร้าง CA แต่ใช้งานได้ทั่วไป ฉันไม่ได้ออกใบรับรอง sub-CA สำหรับ Windows Enterprise CA แต่ไม่สามารถจินตนาการได้ว่าทำไมมันถึงไม่ทำงาน (แม้ว่า MS จะทำหน้าที่ต่อต้านการแข่งขันที่รุนแรงยิ่งกว่าในอดีต) +1 มากสำหรับ CA ในฐานะ VM การเก็บสำเนาใบรับรองใบที่สองเป็นความคิดที่ดี (Base64 บนกระดาษมีความทนทานและง่ายต่อการเก็บไว้ในตู้นิรภัย / กล่องฝาก / อื่น ๆ )
Chris S

ฉันค่อนข้างพอใจกับตัวเองเมื่อฉันรู้ว่าฉันสามารถตั้งค่า VM โดยไม่ต้องใช้ NIC ใด ๆ และเพียงแค่ใช้ฟล็อปปี้ไดรฟ์เสมือนเพื่อเปิดใช้งาน CSR และออกใบรับรอง รองเท้าผ้าใบเกิดใหม่ด้วยศตวรรษที่ 21 เสมือนจริง!
dunxd
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.