อุปสรรค 2 ประการที่นักพัฒนาซอฟต์แวร์ต้องพบเมื่อเปลี่ยนไปใช้ HTTPS คือแนวคิดและคำศัพท์ คู่มือนี้จะให้ภาพรวมคร่าวๆ ของทั้ง 2 แพลตฟอร์ม
สรุป
- ใช้คีย์สาธารณะ/ส่วนตัวเพื่อลงนามและถอดรหัสข้อความระหว่างเบราว์เซอร์และเซิร์ฟเวอร์
- ผู้ออกใบรับรอง (CA) คือองค์กรที่ยืนยันการจับคู่ระหว่างคีย์สาธารณะและชื่อ DNS สาธารณะ (เช่น "www.foobar.com")
- คำขอลงชื่อใบรับรอง (CSR) เป็นรูปแบบข้อมูลที่รวมคีย์สาธารณะเข้ากับข้อมูลเมตาบางรายการเกี่ยวกับเอนทิตีที่เป็นเจ้าของคีย์
คู่คีย์สาธารณะและคีย์ส่วนตัวคืออะไร
คู่คีย์สาธารณะ/ส่วนตัวคือคู่ของตัวเลขขนาดใหญ่มากที่ใช้เป็นคีย์การเข้ารหัสและคีย์ถอดรหัส และมีความสัมพันธ์ทางคณิตศาสตร์พิเศษเหมือนกัน ระบบทั่วไปสำหรับคู่คีย์คือ ระบบรหัสลับ RSA คีย์สาธารณะจะใช้ในการเข้ารหัสข้อความ และจะถอดรหัสข้อความดังกล่าวได้ด้วยคีย์ส่วนตัวที่ตรงกันเท่านั้น เว็บเซิร์ฟเวอร์ของคุณโฆษณาคีย์สาธารณะไปทั่วโลก และไคลเอ็นต์ (เช่น เว็บเบราว์เซอร์) จะใช้คีย์ดังกล่าวในการเพิ่มช่องทางที่ปลอดภัยให้เซิร์ฟเวอร์ของคุณ
ผู้ออกใบรับรองคืออะไร
ผู้ออกใบรับรอง (CA) คือองค์กรที่ยืนยันการจับคู่ระหว่างคีย์สาธารณะกับชื่อ DNS สาธารณะ (เช่น "www.foobar.com") ตัวอย่างเช่น ไคลเอ็นต์จะรู้ได้อย่างไรว่าคีย์สาธารณะหนึ่งๆ เป็นคีย์สาธารณะ true สำหรับ www.foobar.com ไม่มีทางทราบได้เลย CA รับรองคีย์ใดคีย์หนึ่งว่าเป็นคีย์จริงของเว็บไซต์หนึ่งๆ โดยใช้คีย์ส่วนตัวของตนเองเพื่อลงนามแบบเข้ารหัสคีย์สาธารณะของเว็บไซต์ ลายเซ็นนี้ไม่สามารถปลอมแปลงได้ในการคำนวณ เบราว์เซอร์ (และไคลเอ็นต์อื่นๆ) จะรักษาเชื่อถือที่เก็บแท็ก Anchor ที่มีคีย์สาธารณะของ CA ที่รู้จักกันดี และใช้คีย์สาธารณะเหล่านั้นเพื่อยืนยันแบบเข้ารหัสลายเซ็นของ CA
ใบรับรอง X.509 เป็นรูปแบบข้อมูลที่รวมคีย์สาธารณะไว้ด้วยกันกับข้อมูลเมตาบางรายการเกี่ยวกับเอนทิตีที่เป็นเจ้าของคีย์ ในกรณีของเว็บ เจ้าของคีย์คือโอเปอเรเตอร์ของเว็บไซต์ และข้อมูลเมตาที่สำคัญคือชื่อ DNS ของเว็บเซิร์ฟเวอร์ เมื่อไคลเอ็นต์เชื่อมต่อกับเว็บเซิร์ฟเวอร์ HTTPS เว็บเซิร์ฟเวอร์จะแสดงใบรับรองของตนเองเพื่อให้ไคลเอ็นต์ยืนยัน ไคลเอ็นต์ยืนยันว่าใบรับรองยังไม่หมดอายุ ชื่อ DNS ตรงกับชื่อเซิร์ฟเวอร์ที่ไคลเอ็นต์พยายามเชื่อมต่อ และ CA ที่เชื่อถือได้ของ Trust Anchor ได้ลงนามใบรับรองแล้ว ในกรณีส่วนใหญ่ CA ไม่ได้เซ็นชื่อในใบรับรองของเว็บเซิร์ฟเวอร์โดยตรง โดยปกติจะมีเชนใบรับรองที่เชื่อมโยง Trust Anchor กับผู้เซ็นตัวกลางหรือผู้เซ็น และสุดท้ายคือใบรับรองของเว็บเซิร์ฟเวอร์เอง (เอนทิตีปลายทาง)
คำขอลงชื่อใบรับรองคืออะไร
คำขอลงชื่อใบรับรอง (CSR) คือรูปแบบข้อมูลซึ่งคล้ายกับใบรับรองที่รวมคีย์สาธารณะไว้ด้วยกันกับข้อมูลเมตาบางรายการเกี่ยวกับเอนทิตีที่เป็นเจ้าของคีย์ แต่ไคลเอ็นต์จะไม่ตีความ CSR แต่ CA ยอมรับ เมื่อคุณขอรับใบรับรอง CA สำหรับคีย์สาธารณะของเว็บเซิร์ฟเวอร์ คุณจะต้องส่ง CSR ให้ CA CA จะตรวจสอบข้อมูลใน CSR และนำไปใช้สร้างใบรับรอง จากนั้น CA จะส่งใบรับรองฉบับสุดท้ายให้คุณ จากนั้นคุณติดตั้งใบรับรองนั้น (หรือที่น่าจะเป็นกลุ่มใบรับรอง) และคีย์ส่วนตัวในเว็บเซิร์ฟเวอร์