เบราว์เซอร์มีรายการ "ใบรับรองผู้ออกใบรับรอง" (CA) ที่เชื่อถือได้ หากใบรับรองของเซิร์ฟเวอร์ลงนามโดยหนึ่งในใบรับรอง CA เหล่านั้นและจัดรูปแบบอย่างเหมาะสมคุณจะไม่ได้รับคำเตือน SSL
เบราว์เซอร์จำนวนมากที่มาพร้อมกับใบรับรอง CA ทั่วไปเช่น Verisign, Thawte เป็นต้นเบราว์เซอร์ส่วนใหญ่อนุญาตให้คุณนำเข้า CA ใหม่ลงในรายการ CA ที่เชื่อถือได้นี้
เช่นเดียวกับการสร้างใบรับรองเซิร์ฟเวอร์ที่ลงชื่อด้วยตนเองของคุณเองคุณสามารถสร้างใบรับรอง CA ที่ลงชื่อด้วยตนเองได้ จากนั้นคุณสามารถใช้สิ่งนั้นเพื่อลงชื่อใบรับรองเซิร์ฟเวอร์ของคุณ หาก CA ของคุณไม่ได้ให้บริการโดย บริษัท ที่มีชื่อเสียงซึ่งไม่น่าจะเป็น บริษัท ที่คุณสร้างขึ้นจะต้องนำเข้าอย่างชัดเจนบนฝั่งเซิร์ฟเวอร์
ฉันเคยxca
ทำแบบนี้มาก่อน มีเทมเพลตสำหรับเซิร์ฟเวอร์ CA และ HTTP ขั้นตอนนี้คือ:
- สร้างคีย์ส่วนตัวสำหรับ CA ของคุณ
- สร้าง CA ที่ลงนามเองโดยใช้คีย์นี้โดยใช้เทมเพลต "CA"
- สร้างไพรเวตคีย์สำหรับพร็อกซีเซิร์ฟเวอร์ของคุณ
- สร้าง "คำขอลงนามใบรับรอง" (CSR) โดยใช้คีย์ที่สองอ้างอิง CA ที่คุณเพิ่งสร้าง
- "ลงชื่อ" CSR และคุณจะมีใบรับรองเซิร์ฟเวอร์พรอกซีซึ่งอ้างอิง CA ของคุณเอง
จากนั้นคุณจะต้องส่งออก (เป็นไฟล์หากใช้xca
) ใบรับรอง CA (แต่ไม่รวมรหัสส่วนตัวของหลักสูตร) .pem
จะถูกสร้างขึ้น .crt
แต่คุณสามารถเปลี่ยนนามสกุลไป เมื่อผู้ใช้คลิกที่นั้นจะมีการเสนอให้ติดตั้งบน Firefox และ Internet Explorer และเบราว์เซอร์หลักอื่น ๆ เท่าที่การติดตั้ง. crt นี้โดยอัตโนมัติคุณสามารถ:
- ใช้นโยบายกลุ่มใน IE
- นำผู้ใช้ไปยังหน้าบทนำเพื่อขอให้พวกเขาดาวน์โหลด / ติดตั้ง. crt หากพวกเขาต้องการหลีกเลี่ยงคำเตือน
จากนั้นคุณสามารถใช้ฟังก์ชั่นการส่งออกในใบรับรองเซิร์ฟเวอร์ HTTP (ส่งออกทั้งรหัสส่วนตัวและใบรับรองสำหรับฝั่งเซิร์ฟเวอร์) เพื่อวางบนพร็อกซีเซิร์ฟเวอร์ของคุณ
/etc/ssl/certs/ssl-cert-snakeoil.pem
(นี่คือสิ่งที่แพ็คเกจ Debianssl-cert
สร้างขึ้นสำหรับคุณ) เราคัดลอกไปยังโฮสต์ A และเรียกมันว่า/etc/ssl/certs/host-B.pem
(เนื่องจากโฮสต์นี้อาจมีssl-cert-snakeoil.pem
)ln -s /etc/ssl/certs/host-B.pem $(openssl x509 -noout -hash -in /etc/ssl/certs/host-B.pem)
จากนั้นเราจะดำเนินการ