เอกสารนี้ประกอบด้วยส่วนต่อไปนี้
โปรดดูภาพรวมโดยละเอียดเพิ่มเติมเกี่ยวกับการย้ายข้อมูล CA ระดับรูทของ Google ที่ดำเนินอยู่ได้ที่ สิ่งที่จะเกิดขึ้น
คำศัพท์
ด้านล่างนี้เราได้รวบรวมรายการคำที่สำคัญที่สุดที่คุณจำเป็นต้อง คุ้นเคยสำหรับเอกสารนี้ หากต้องการดูภาพรวมที่ครอบคลุมมากขึ้นเกี่ยวกับ คำศัพท์โปรดดูที่ คำถามที่พบบ่อยเกี่ยวกับ Google Trust Services
- ใบรับรอง SSL/TLS
- ใบรับรองจะเชื่อมโยงคีย์การเข้ารหัสกับข้อมูลประจำตัว
- ใบรับรอง SSL/TLS ใช้สำหรับตรวจสอบสิทธิ์และสร้างการเชื่อมต่อที่ปลอดภัย ไปยังเว็บไซต์ ใบรับรองออกและลงชื่อแบบเข้ารหัสโดยเอนทิตี ซึ่งมีชื่อว่า Certificate Authority
- เบราว์เซอร์ต้องใช้ใบรับรองที่ออกโดยผู้ออกใบรับรองที่เชื่อถือได้จึงจะทราบข้อมูล มีการส่งข้อมูลที่ส่งไปยังเซิร์ฟเวอร์ที่ถูกต้อง และเป็น ได้รับการเข้ารหัสขณะส่ง
- Secure Sockets Layer (SSL)
- Secure Sockets Layer เป็นโปรโตคอลที่ใช้งานกันอย่างแพร่หลายที่สุดในการเข้ารหัส การสื่อสารทางอินเทอร์เน็ต โปรโตคอล SSL ไม่ถือว่าปลอดภัยอีกต่อไปและ ไม่ควรใช้
- Transport Layer Security (TLS)
- Transport Layer Security (TLS) รับช่วงต่อจาก SSL
- ผู้ออกใบรับรอง (CA)
- ผู้ออกใบรับรองเป็นเหมือนสำนักงานหนังสือเดินทางดิจิทัลสำหรับอุปกรณ์และ บุคคล ออกเอกสารที่มีการป้องกันแบบเข้ารหัส (ใบรับรอง) ไปยัง รับรองว่านิติบุคคล (เช่น เว็บไซต์) คือบุคคลที่อ้างสิทธิ
- ก่อนออกใบรับรอง CA จะรับผิดชอบในการยืนยันว่า ชื่อในใบรับรองจะลิงก์กับบุคคลหรือนิติบุคคลที่ส่งคำขอ
- คำว่าผู้ออกใบรับรองอาจหมายถึงทั้ง 2 องค์กร เช่น Google เชื่อถือบริการ และระบบที่ออกใบรับรอง
- ที่เก็บใบรับรองรูท
- ที่เก็บใบรับรองรูทประกอบด้วยชุดผู้ออกใบรับรองที่เชื่อถือ ผู้จัดหาซอฟต์แวร์แอปพลิเคชัน เว็บเบราว์เซอร์และระบบปฏิบัติการส่วนใหญ่ ที่เก็บใบรับรองรูทของตนเอง
- หากต้องการรวมไว้ในที่เก็บใบรับรองรูท ผู้ออกใบรับรองจะต้อง ปฏิบัติตามข้อกำหนดอันเคร่งครัดที่กำหนดโดยซัพพลายเออร์ซอฟต์แวร์แอปพลิเคชัน
- โดยทั่วไปแล้วจะรวมถึงการปฏิบัติตามมาตรฐานอุตสาหกรรม เช่น ข้อกำหนดเกี่ยวกับฟอรัม CA/เบราว์เซอร์
- ผู้ออกใบรับรองรูท
- ผู้ออกใบรับรองรูท (หรือสูงกว่าคือใบรับรอง) คือ ใบรับรองระดับบนสุดในกลุ่มใบรับรอง
- โดยปกติแล้วใบรับรอง CA รูทจะมีการลงชื่อด้วยตนเอง คีย์ส่วนตัวที่เชื่อมโยงกับ แอปเหล่านั้นจะถูกเก็บไว้ในสิ่งอำนวยความสะดวกที่มีความปลอดภัยสูง และได้รับการดูแลรักษาแบบออฟไลน์ เพื่อป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต
- ผู้ออกใบรับรองระดับกลาง
- ผู้ออกใบรับรองระดับกลาง (หรืออาจจะกล่าวมากกว่าคือใบรับรอง) คือ ใบรับรองที่ใช้ในการลงนามใบรับรองอื่นๆ ในกลุ่มใบรับรอง
- โดยพื้นฐานแล้ว CA ระดับกลางมีไว้เพื่อเปิดให้ออกใบรับรองออนไลน์ได้ อนุญาตให้ใบรับรอง CA รูทยังคงออฟไลน์ได้
- CA ระดับกลางเรียกอีกอย่างว่า CA ย่อย
- ผู้ออกใบรับรองที่ออก
- ผู้ออกใบรับรองที่ออกใบรับรอง หรือก็คือใบรับรองของผู้ออกใบรับรองคือ ใบรับรองที่ใช้เพื่อลงชื่อในใบรับรองที่อยู่ด้านล่างสุดในใบรับรอง เชนธุรกิจ
- ใบรับรองที่อยู่ด้านล่างสุดนี้เรียกกันโดยทั่วไปว่าใบรับรองสมาชิก ใบรับรองขององค์กรปลายทางหรือใบรับรอง Leaf ในเอกสารนี้เราจะใช้ คำว่าใบรับรองเซิร์ฟเวอร์
- เชนใบรับรอง
- ใบรับรองจะลิงก์กับผู้ออกใบรับรอง (ซึ่งลงนามแบบเข้ารหัสโดย) ต กลุ่มใบรับรองประกอบด้วยใบสำคัญ (Leaf-Certificate) ซึ่งเป็นใบรับรองของผู้ออกทั้งหมด และใบรับรองรูท
- การลงนามไขว้
- ผู้จำหน่ายซอฟต์แวร์แอปพลิเคชัน ไคลเอ็นต์ต้องอัปเดตใบรับรองรูท เพื่อรวมใบรับรอง CA ใหม่เพื่อให้ผลิตภัณฑ์ของตนเชื่อถือ ระบบจะใช้เวลาสักครู่ก่อนที่ผลิตภัณฑ์ที่มีใบรับรอง CA ใหม่จะ ใช้กันอย่างแพร่หลาย
- หากต้องการเพิ่มความเข้ากันได้กับไคลเอ็นต์รุ่นเก่า คุณอาจสร้างใบรับรอง CA "เซ็นชื่อไขว้" โดย CA เก่าที่ได้รับการยอมรับรายอื่น ซึ่งช่วยสร้าง ใบรับรอง CA ใบที่ 2 สำหรับข้อมูลประจำตัวเดียวกัน (ชื่อและคู่คีย์)
- ไคลเอ็นต์จะต่อไปนี้ ขึ้นอยู่กับ CA ที่รวมอยู่ในที่เก็บใบรับรองรูท สร้างห่วงโซ่ใบรับรองอื่นจนถึงรูทที่พวกเขาเชื่อถือ
ข้อมูลทั่วไป
จะเกิดอะไรขึ้น
ภาพรวม
ในปี 2017 Google ได้เริ่มโครงการหลายปีเพื่อออกและใช้รากฐานของตนเอง ใบรับรอง ลายเซ็นวิทยาการเข้ารหัสที่เป็นพื้นฐานของอินเทอร์เน็ต TLS การรักษาความปลอดภัยที่ HTTPS ใช้
หลังจากระยะแรก การรักษาความปลอดภัย TLS ของบริการ Google Maps Platform รับประกันโดย GS Root R2 ซึ่งเป็นรูทที่รู้จักกันดีและได้รับความไว้วางใจอย่างกว้างขวาง ผู้ออกใบรับรอง (CA) ที่ Google ซื้อมาจาก GMO GlobalSign ได้อย่างสะดวก การเปลี่ยนไปใช้ CA ระดับรูทของ Google Trust Services (GTS) ที่ออกด้วยตนเอง
ไคลเอ็นต์ TLS ทั้งหมดในทางปฏิบัติ (เช่น เว็บเบราว์เซอร์ สมาร์ทโฟน และแอปพลิเคชัน ) ได้เชื่อถือใบรับรองรูทนี้ จึงสามารถ สร้างการเชื่อมต่อที่ปลอดภัยกับเซิร์ฟเวอร์ Google Maps Platform ในระหว่าง ระยะแรกของการย้ายข้อมูล
อย่างไรก็ตาม CA สามารถออกแบบให้ไม่ออกใบรับรองที่ถูกต้องนอกเหนือจาก เวลาหมดอายุของใบรับรองของตัวเอง เนื่องจากรูท R2 ของ GS จะหมดอายุในวันที่ ในวันที่ 15 ธันวาคม 2021 Google จะย้ายข้อมูลบริการของตนเองไปยังแคนาดาใหม่ GTS Root R1 Cross โดยใช้ใบรับรองที่ออกโดย CA รูทของ Google เอง GTS Root R1
แม้ว่าระบบปฏิบัติการสมัยใหม่และไลบรารีไคลเอ็นต์ TLS ส่วนใหญ่ เชื่อถือ CA ระดับรูทของ GTS อยู่แล้ว เพื่อให้การเปลี่ยนผ่านเป็นไปอย่างราบรื่นสำหรับ ระบบเดิม Google ได้ลายเซ็นข้ามระบบจาก GMO GlobalSign โดยใช้ GlobalSign Root CA - R1 ซึ่งเป็น CA รูทที่เก่าแก่ที่สุดและเชื่อถือได้มากที่สุดในขณะนี้ พร้อมใช้งาน
ดังนั้น ลูกค้าส่วนใหญ่ ใน Google Maps Platform จดจำ CA รูทที่เชื่อถือได้เหล่านี้รายการใดรายการหนึ่ง (หรือทั้งคู่) และจะ จะไม่มีผลกระทบใดๆ เลยจากการย้ายข้อมูลเฟสที่ 2
นอกจากนี้ยังรวมถึงลูกค้าที่ดําเนินการในช่วงแรกของการสมัครใช้บริการ การย้ายข้อมูลในปี 2018 โดยสันนิษฐานว่าเมื่อถึงเวลานั้นทำตามคำแนะนำของเรา กำลังติดตั้งใบรับรองทั้งหมดจาก กลุ่ม CA รูทของ Google ที่เชื่อถือได้
คุณควรยืนยันระบบในกรณีต่อไปนี้
- บริการของคุณใช้แพลตฟอร์มที่ไม่ใช่แบบมาตรฐานหรือเดิม และ/หรือคุณดูแล ที่เก็บใบรับรองรูทของตัวเอง
- แต่ไม่ได้ดำเนินการในปี 2017-2018 ในช่วงแรกของ การย้ายข้อมูล CA ระดับรูท หรือคุณไม่ได้ติดตั้งใบรับรองทั้งชุดจาก กลุ่ม CA รูทของ Google ที่เชื่อถือได้
หากเป็นไปตามเงื่อนไขข้างต้น ลูกค้าของคุณอาจต้องได้รับการอัปเดตด้วยคำแนะนำ ใบรับรองรูทเพื่อให้ใช้งานได้อย่างต่อเนื่อง การใช้งาน Google Maps Platform ในระยะนี้ของการย้ายข้อมูล
ดูรายละเอียดทางเทคนิคเพิ่มเติมด้านล่าง สำหรับคำแนะนำทั่วไป โปรด โปรดดูส่วนวิธีตรวจสอบว่าที่เก็บใบรับรองรูทของฉันต้องอัปเดตหรือไม่
นอกจากนี้ เราขอแนะนำให้คุณเก็บที่เก็บใบรับรองรูทไว้ใน ซิงค์กับชุด CA รูทที่มีการดูแลจัดการข้างต้นเพื่อแสดงบริการของคุณเทียบกับในอนาคต การเปลี่ยนแปลง CA ระดับรูท อย่างไรก็ตาม เราจะประกาศให้คุณทราบล่วงหน้า ดูส่วนต่างๆ ฉันจะรับข้อมูลอัปเดตเกี่ยวกับระยะการย้ายข้อมูลนี้ได้อย่างไร และ ฉันจะรับการแจ้งเตือนล่วงหน้าเกี่ยวกับการย้ายข้อมูลในอนาคตได้อย่างไร เพื่อดูคำแนะนำเพิ่มเติมเกี่ยวกับวิธีอัปเดตข้อมูล
ข้อมูลสรุปทางเทคนิค
ตามประกาศเมื่อวันที่ 15 มีนาคม 2021 เกี่ยวกับ บล็อกด้านความปลอดภัยของ Google GS Root R2 ซึ่งเป็น CA ระดับรูทที่ Google Maps Platform ใช้งานมาตั้งแต่ต้นปี 2018 จะหมดอายุในวันที่ 15 ธันวาคม 2021 ดังนั้น Google จะในระหว่างปีนี้ ย้ายข้อมูลไปยัง GTS Root R1 Cross ของ CA ที่เพิ่งออกใหม่ ซึ่งหมายความว่าบริการของเรา จะทยอยเปลี่ยนไปใช้ใบรับรอง TLS Leaf ที่ออกโดย CA ใหม่นี้
ไคลเอ็นต์และระบบ TLS สมัยใหม่เกือบทั้งหมดจะได้รับการกำหนดค่าไว้ล่วงหน้าด้วย ใบรับรอง GTS Root R1 หรือควรได้รับผ่านการอัปเดตซอฟต์แวร์ปกติ และ GlobalSign Root CA - R1 ควรพร้อมใช้งานในระบบเดิมที่เก่ากว่า
อย่างไรก็ตาม คุณควรยืนยันระบบเป็นอย่างน้อยหากทั้ง 2 ประเด็นต่อไปนี้ ใช้:
- บริการของคุณทำงานบนแพลตฟอร์มที่ไม่ใช่แบบมาตรฐานหรือเดิม และ/หรือคุณดูแล ที่เก็บใบรับรองรูทของตัวเอง
- แต่ไม่ได้ดำเนินการในปี 2017-2018 ในช่วงแรกของ การย้ายข้อมูล CA ระดับรูท หรือคุณไม่ได้ติดตั้งใบรับรองทั้งชุดจาก กลุ่ม CA รูทของ Google ที่เชื่อถือได้
ส่วนวิธีตรวจสอบว่าที่เก็บใบรับรองรูทของฉันต้องอัปเดตหรือไม่ให้ข้อมูลทั่วไปเกี่ยวกับ คำแนะนำในการทดสอบว่าระบบของคุณจะได้รับผลกระทบหรือไม่
ดูคำถาม เหตุใดฉันจึงควรซิงค์ที่เก็บใบรับรองรูทของฉันกับแพ็กเกจ CA รูทของ Google ที่เชื่อถือได้ เพื่อดูรายละเอียดทั้งหมด
ฉันจะรับข้อมูลอัปเดตเกี่ยวกับระยะการย้ายข้อมูลนี้ได้อย่างไร
ติดดาวปัญหาสาธารณะ 186840968 สำหรับ อัปเดต คําถามที่พบบ่อยนี้จะมีการอัปเดตตลอดกระบวนการย้ายข้อมูล เมื่อใดก็ตามที่เรา พบหัวข้อที่อาจเป็นความสนใจทั่วไป
ฉันจะรับการแจ้งเตือนล่วงหน้าเกี่ยวกับการย้ายข้อมูลในอนาคตได้อย่างไร
เราขอแนะนำให้คุณทำตาม บล็อกด้านความปลอดภัยของ Google นอกจากนี้เรายังมุ่งมั่นที่จะ อัปเดตเอกสารเฉพาะผลิตภัณฑ์โดยเร็วที่สุดตามการเผยแพร่ ในบล็อก
และโปรดสมัครรับ การแจ้งเตือนของ Google Maps Platform เนื่องจากเราโพสต์ข้อมูลอัปเดตในฟอรัมเกี่ยวกับการเปลี่ยนแปลงที่มีแนวโน้มว่าจะ ส่งผลต่อลูกค้าจำนวนมากขึ้น
เราใช้บริการหลายอย่างของ Google การย้ายข้อมูล CA ระดับรูทจะมีผลกับการย้ายข้อมูลทั้งหมดไหม
ใช่ การย้ายข้อมูล CA ระดับรูทจะเกิดขึ้นในบริการและ API ทั้งหมดของ Google แต่ ลำดับเวลาอาจแตกต่างกันไปในแต่ละบริการ อย่างไรก็ตาม เมื่อตรวจสอบแล้วว่ารูท ที่เก็บใบรับรองที่แอปพลิเคชันไคลเอ็นต์ Google Maps Platform ของคุณใช้ มี CA ทั้งหมดที่ระบุไว้ใน กลุ่ม CA รูทของ Google ที่เชื่อถือได้ บริการไม่ควรได้รับผลกระทบจากการย้ายข้อมูลที่ดำเนินอยู่ และคงรายการเหล่านี้ไว้ การซิงค์จะป้องกันคุณจากการเปลี่ยนแปลงของ CA ระดับรูทในอนาคต
ดูคำถาม เหตุใดฉันจึงควรซิงค์ที่เก็บใบรับรองรูทของฉันกับแพ็กเกจ CA รูทของ Google ที่เชื่อถือได้ และ แอปพลิเคชันประเภทใดมีความเสี่ยงที่จะเสียหาย เพื่อดูข้อมูลเชิงลึกเพิ่มเติม
ส่วนวิธีตรวจสอบว่าที่เก็บใบรับรองรูทของฉันต้องอัปเดตหรือไม่ด้านล่างนี้ คำแนะนำทั่วไปในการทดสอบระบบ
วิธียืนยันว่าที่เก็บใบรับรองรูทของฉันต้องอัปเดตหรือไม่
ทดสอบสภาพแวดล้อมของแอปพลิเคชันกับปลายทางการทดสอบที่แสดงด้านล่าง
- หากคุณสามารถสร้างการเชื่อมต่อ TLS กับ ปลายทางการทดสอบ GTS Root R1 ครอส จะไม่ได้รับผลกระทบจากการหมดอายุของ GS Root R2
- หากคุณสามารถสร้างการเชื่อมต่อ TLS กับ ปลายทางการทดสอบ GTS Root R1 แอปพลิเคชันของคุณอาจได้รับการปกป้องจากการหมดอายุของ GTS Root R1 Cross และ GlobalSign Root CA - R1 ในปี 2028
โดยปกติระบบจะเข้ากันได้กับการเปลี่ยนแปลง CA รูทนี้ในกรณีต่อไปนี้
- บริการของคุณทำงานบนระบบปฏิบัติการหลักที่ได้รับการบำรุงรักษา และคุณจะต้อง เก็บทั้งระบบปฏิบัติการและไลบรารีที่บริการของคุณใช้แพตช์ และคุณไม่ได้ดูแลรักษาที่เก็บใบรับรองรูทของคุณเองหรือ
- คุณทำตามคำแนะนำก่อนหน้าของเรา และติดตั้ง CA รากทั้งหมดจาก กลุ่ม CA รูทของ Google ที่เชื่อถือได้
ลูกค้าที่อาจได้รับผลกระทบควรติดตั้งใบรับรองจาก กลุ่ม CA รูทของ Google ที่เชื่อถือได้ไปยัง เพื่อหลีกเลี่ยงไม่ให้บริการหยุดชะงักในอนาคต
ดูคำถาม เหตุใดฉันจึงควรซิงค์ที่เก็บใบรับรองรูทของฉันกับแพ็กเกจ CA รูทของ Google ที่เชื่อถือได้ เพื่อดูรายละเอียดทั้งหมด
มีเครื่องมือง่ายๆ ที่ใช้ยืนยันที่เก็บใบรับรองรูทของเราไหม
คุณอาจพบว่าเครื่องมือบรรทัดคำสั่ง 2 รายการ curl
และ openssl
ซึ่งมีประโยชน์ใน
การสอบสวน ทั้ง 2 อย่างนี้มีให้บริการบนแพลตฟอร์มส่วนใหญ่ และมอบ
ในการทดสอบการตั้งค่า
สำหรับคำแนะนำในการรับ curl
โปรดดูส่วนการรับ curl
ที่ด้านล่าง
คำสั่ง openssl
ที่แสดงด้านล่างใช้สำหรับเวอร์ชัน 1.1.1 หรือใหม่กว่า
เวอร์ชันก่อน 1.1.1 ไม่ได้รับการสนับสนุน หากคุณใช้เวอร์ชันก่อนหน้า
อัปเกรดหรือแก้ไขคำสั่งเหล่านี้ตามที่จำเป็นสำหรับเวอร์ชันของคุณ สำหรับคำแนะนำ
ในการรับ openssl
โปรดดูส่วน การรับ OpenSSL ด้านล่าง
นอกจากนี้คุณจะพบเครื่องมือที่เป็นประโยชน์เพิ่มเติมในส่วน ฉันจะหาเครื่องมือที่ต้องการได้จากที่ใดด้านล่าง
โปรดดูวิธีการทดสอบที่เป็นรูปธรรมได้ที่ วิธีตรวจสอบว่าที่เก็บใบรับรองรูทของฉันต้องอัปเดตหรือไม่
การทดสอบที่เก็บใบรับรองรูทเริ่มต้น
curl -vvI https://maps.googleapis.com; \
openssl s_client -connect maps.googleapis.com:443 -showcerts </dev/null; \
curl -vvI https://good.gtsr1.demo.pki.goog/; \
openssl s_client -connect good.gtsr1.demo.pki.goog:443 -showcerts </dev/null; \
curl -vvI https://good.gtsr1x.demo.pki.goog/; \
openssl s_client -connect good.gtsr1x.demo.pki.goog:443 -showcerts </dev/null;
การยืนยันแพ็กเกจ CA รูทของ Google ที่เชื่อถือได้
ดาวน์โหลด กลุ่ม CA รูทของ Google ที่เชื่อถือได้ จากนั้น ให้ทำตามขั้นตอนต่อไปนี้
curl -vvI --cacert roots.pem https://maps.googleapis.com; \
openssl s_client -CAfile roots.pem -connect maps.googleapis.com:443 -showcerts </dev/null; \
curl -vvI --cacert roots.pem https://good.gtsr1.demo.pki.goog/; \
openssl s_client -CAfile roots.pem -connect good.gtsr1.demo.pki.goog:443 -showcerts </dev/null; \
curl -vvI --cacert roots.pem https://good.gtsr1x.demo.pki.goog/; \
openssl s_client -CAfile roots.pem -connect good.gtsr1x.demo.pki.goog:443 -showcerts </dev/null;
การย้ายข้อมูล CA รูทของ Google จะดำเนินต่อไปอย่างไรและเมื่อไร
- เฟสแรก (การย้ายข้อมูลไปยัง GS Root R2) ที่ประกาศไปเมื่อเดือนมกราคม 2017 ซึ่งเริ่มต้นไปเมื่อช่วงปลายปี 2017 และก็สิ้นสุดไปในช่วงครึ่งแรกของปี 2018
- เฟสที่ 2 (การย้ายข้อมูลไปยัง GTS Root R1 Cross) มีการประกาศในเดือนมีนาคม 2021 และจะเปิดตัวในอีกไม่กี่เดือนข้างหน้า ก่อนที่ GS Root R2 จะหมดอายุในวันที่ 15 ธันวาคม 2021
กำหนดการสำหรับระยะการย้ายข้อมูลในภายหลังจะประกาศล่วงหน้า ของการหมดอายุของใบรับรองในอนาคต
อย่างไรก็ตาม คุณจะสามารถพิสูจน์อักษรแอปได้ในอนาคตหาก ที่เก็บใบรับรองรูทของคุณซิงค์กับรายการ CA รูทที่ได้รับการดูแลจัดการใน กลุ่ม CA รูทของ Google ที่เชื่อถือได้
ดูคำถามด้วย เหตุใดฉันจึงควรซิงค์ที่เก็บใบรับรองรูทของฉันกับแพ็กเกจ CA รูทของ Google ที่เชื่อถือได้ เพื่อดูความเป็นมาเพิ่มเติม
แผนการเปิดตัวทั่วไปสำหรับบริการแต่ละอย่างของ Google
- การเปิดตัวแบบทีละขั้นจะเริ่มต้นในศูนย์ข้อมูลแห่งเดียว
- การทยอยเปิดตัวไปยังศูนย์ข้อมูลต่างๆ เพิ่มเติมจนกว่าจะมีความพร้อมทั่วโลก ที่ครอบคลุม
- หากตรวจพบปัญหาร้ายแรงในขั้นตอนใดก็ตาม จะย้อนกลับการทดสอบได้ เป็นการชั่วคราวขณะที่ปัญหาได้รับการแก้ไข
- ตามข้อมูลจากการทำซ้ำครั้งก่อน บริการเพิ่มเติมของ Google รวมอยู่ในการเปิดตัว จนกว่าบริการทั้งหมดของ Google จะได้รับการทยอยย้ายไปยัง ใบรับรองใหม่
ใครบ้างที่จะได้รับผลกระทบ เมื่อใด และที่ใด
จำนวนนักพัฒนาซอฟต์แวร์ Google Maps Platform จะเริ่มได้รับ ใบรับรองใหม่เมื่อมีการย้ายข้อมูลศูนย์ข้อมูลใหม่ การเปลี่ยนแปลงจะ แปลบางส่วน เนื่องจากคำขอของไคลเอ็นต์มีแนวโน้มที่จะถูกส่งต่อไปยังเซิร์ฟเวอร์ใน ศูนย์ข้อมูลที่อยู่ใกล้ๆ ทางภูมิศาสตร์
เนื่องจากเราไม่สามารถบอกได้ล่วงหน้าว่าผู้ใดจะได้รับผลกระทบ เมื่อใดและที่ใด เราขอแนะนำให้ลูกค้าทุกรายยืนยันตัวตน และพิสูจน์แล้วว่าใช้บริการได้ในอนาคต ล่วงหน้าก่อนระยะการย้ายข้อมูล CA ระดับรูทของ Google ที่เป็นไปได้
โปรดดูข้อมูลเพิ่มเติมในส่วนวิธีตรวจสอบว่าที่เก็บใบรับรองรูทของฉันต้องอัปเดตหรือไม่ คำแนะนำ
สิ่งที่ควรระวัง
ไคลเอ็นต์ที่ไม่ได้กำหนดค่าด้วยใบรับรองรูทที่จำเป็นจะไม่สามารถใช้งานได้ สามารถยืนยันการเชื่อมต่อ TLS กับ Google Maps Platform ได้ ด้วยวิธีนี้ ลูกค้ามักจะออกคำเตือนว่าการตรวจสอบใบรับรอง ล้มเหลว
ไคลเอ็นต์อาจดำเนินการออกคำสั่งซื้อต่อไป ทั้งนี้ขึ้นอยู่กับการกำหนดค่า TLS Google Maps Platform หรืออาจปฏิเสธที่จะดำเนินการ อีกครั้ง
ข้อกำหนดขั้นต่ำสำหรับไคลเอ็นต์ TLS เพื่อสื่อสารกับ Google Maps Platform มีอะไรบ้าง
ใบรับรอง Google Maps Platform ใช้ชื่อสำรองของ DNS Subject
(SAN) ดังนั้น
การจัดการใบรับรองของไคลเอ็นต์ต้องรองรับ SAN ที่อาจมี
ใช้ไวลด์การ์ดเดี่ยวเป็นป้ายกำกับด้านซ้ายสุดในชื่อ เช่น *.googleapis.com
สำหรับข้อกำหนดอื่นๆ โปรดดูที่ส่วน ข้อกำหนดที่แนะนำสำหรับไคลเอ็นต์ TLS เพื่อสื่อสารกับ Google มีอะไรบ้าง ในคำถามที่พบบ่อยเกี่ยวกับ GTS
แอปพลิเคชันประเภทใดมีความเสี่ยงที่จะเกิดความเสียหาย
แอปพลิเคชันใช้ที่เก็บใบรับรองรูทของระบบโดยไม่มีข้อจำกัดที่นักพัฒนาซอฟต์แวร์กำหนด
แอปพลิเคชันบริการเว็บของ Google Maps Platform
หากคุณใช้ระบบปฏิบัติการยอดนิยม เช่น Ubuntu, Red Hat, Windows 10 หรือเซิร์ฟเวอร์ 2019, OS X) ซึ่งยังคงมีการดูแลรักษาและได้รับการอัปเดตเป็นประจำ, ค่าเริ่มต้นของคุณ ที่เก็บใบรับรองรูทควรมีใบรับรอง GTS Root R1 อยู่แล้ว
หากคุณใช้ระบบปฏิบัติการเวอร์ชันเดิมที่ไม่ได้รับการอัปเดตอีกต่อไป คุณสามารถหรือ อาจไม่มีใบรับรอง GTS Root R1 อย่างไรก็ตาม ใบรับรองรูทของคุณ ส่วนใหญ่มีแนวโน้มที่จะมี GlobalSign Root CA - R1 ซึ่งเป็นหนึ่งในรายการที่เก่าที่สุดและ CA รูทที่เชื่อถือได้อย่างกว้างขวางที่สุด
สำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ที่เรียกใช้บริการบนเว็บของ Google Maps Platform โดยตรง จากอุปกรณ์ของผู้ใช้ปลายทาง หลักเกณฑ์จากคำถาม แอปบนอุปกรณ์เคลื่อนที่มีความเสี่ยงที่จะขัดข้องไหม นำไปใช้
แอปพลิเคชัน Google Maps Platform ฝั่งไคลเอ็นต์
โดยทั่วไปแล้ว แอปพลิเคชัน Maps JavaScript API จะต้องใช้โค้ด ใบรับรองของเว็บเบราว์เซอร์ที่เรียกใช้แอปพลิเคชัน ดูส่วน แอปพลิเคชัน JavaScript มีความเสี่ยงที่จะเสียหายไหม เพื่อดูรายละเอียดเพิ่มเติม
สำหรับแอปพลิเคชันมือถือแบบเดิมที่ใช้ Maps SDK สำหรับ Android Maps SDK สำหรับ iOS, Places SDK สำหรับ Android หรือ Places SDK สำหรับ iOS ใช้กฎเดียวกันกับแอปที่เรียกเมธอด บริการบนเว็บของ Google Maps Platform
ดูคำถาม แอปบนอุปกรณ์เคลื่อนที่มีความเสี่ยงที่จะขัดข้องไหม เพื่อดูรายละเอียดเพิ่มเติม
แอปจะใช้ชุดใบรับรองของตนเองหรือใช้ฟีเจอร์ความปลอดภัยขั้นสูง เช่น การปักหมุดใบรับรอง
คุณจะต้องอัปเดตกลุ่มใบรับรองด้วยตนเอง ตามที่กล่าวไว้ ใต้คำถาม เหตุใดฉันจึงควรซิงค์ที่เก็บใบรับรองรูทของฉันกับแพ็กเกจ CA รูทของ Google ที่เชื่อถือได้, เราขอแนะนำให้นำเข้าใบรับรองทั้งหมดจาก กลุ่ม CA รูทของ Google ที่เชื่อถือได้ ที่เก็บใบรับรองรูทของคุณเอง
หากคุณปักหมุดใบรับรองหรือคีย์สาธารณะสำหรับโดเมน Google คุณควรเพิ่มใบรับรองและคีย์สาธารณะไปยัง ของเอนทิตีที่เชื่อถือได้ในแอปพลิเคชันของคุณ
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการปักหมุดใบรับรองหรือคีย์สาธารณะ โปรดดูที่ แหล่งข้อมูลภายนอกที่แสดงอยู่ในส่วนหากต้องการข้อมูลเพิ่มเติม
เหตุใดฉันจึงควรซิงค์ที่เก็บใบรับรองรูทของฉันกับแพ็กเกจ CA รูทของ Google ที่เชื่อถือได้
รายการ CA รูทที่ได้รับการดูแลจัดการใน กลุ่ม CA รูทของ Google ที่เชื่อถือได้ หมายรวมถึง CA ทั้งหมดที่อาจใช้โดยบริการของ Google ใน ที่คาดการณ์ได้
ดังนั้น หากคุณต้องการพิสูจน์ระบบของคุณในอนาคต เราขอแนะนำว่า คุณยืนยันว่าที่เก็บใบรับรองรูทของคุณมีใบรับรองทั้งหมด จากแพ็กเกจของตัวเองและทำให้ทั้ง 2 อย่างซิงค์กันอยู่เสมอ
การดำเนินการนี้สำคัญอย่างยิ่งหากบริการทำงานบนระบบปฏิบัติการที่ไม่ได้บำรุงรักษา เวอร์ชันของระบบ คุณอยู่ด้วยเหตุผลอื่นๆ ที่ทำให้ระบบปฏิบัติการของคุณใช้งานไม่ได้ และไลบรารีที่อัปเดตขึ้น หรือคุณดูแลรักษาที่เก็บใบรับรองรูทของตัวเอง
ดูคำถาม ฉันจะรับการแจ้งเตือนล่วงหน้าเกี่ยวกับการย้ายข้อมูลในอนาคตได้อย่างไร เพื่อดูวิธีรับข้อมูลอัปเดตเกี่ยวกับการย้ายข้อมูล CA ระดับรูทในอนาคต เป็นประจำ การทำให้ที่เก็บใบรับรองรูทซิงค์กับรายการที่ดูแลจัดการมีดังนี้ ปกป้องบริการจากการหยุดชะงักของบริการในอนาคต เนื่องจากการเปลี่ยนแปลงใน CA และจะทำให้บริการทำงานได้ต่อไปหลังจากวันหมดอายุของทั้ง 2 บริการ GTS Root R1 Cross และ GlobalSign Root CA - R1
และโปรดดูคำถาม ฉันกำลังสร้างผลิตภัณฑ์ที่เชื่อมต่อกับบริการของ Google ฉันต้องเชื่อถือใบรับรอง CA ใดบ้าง ในคำถามที่พบบ่อยเกี่ยวกับ GTS สำหรับคำแนะนำเพิ่มเติม
เหตุใดฉันจึงไม่ควรติดตั้งใบรับรอง CA ระดับกลางหรือระดับกลาง
เพราะจะทำให้การสมัครของคุณเสียหาย ณ จุดใดก็ตามที่เราลงทะเบียน
ใบรับรอง หรือเปลี่ยน CA ระดับกลาง เหตุการณ์ใดเหตุการณ์หนึ่งเหล่านี้อาจเกิดขึ้นในเวลาใดก็ได้
โดยไม่ต้องแจ้งให้ทราบล่วงหน้า และมีผลต่อแต่ละเซิร์ฟเวอร์อย่างเท่าเทียมกัน
ใบรับรอง เช่น ใบรับรองที่ maps.googleapis.com
แสดง และ
ของ CA ระดับกลางของเรา เช่น GTS Root R1 Cross
คุณควรติดตั้งรูทเท่านั้นเพื่อปกป้องบริการจากปัญหานี้ ใบรับรองจาก กลุ่ม CA รูทของ Google ที่เชื่อถือได้ และ อาศัยใบรับรองระดับรูทเพียงอย่างเดียวเพื่อยืนยันความน่าเชื่อถือของ ห่วงโซ่ใบรับรองทั้งหมดยึดอยู่กับที่
การใช้ไลบรารี TLS สมัยใหม่ทั้งหมดควรยืนยันได้โดยอัตโนมัติ ระดับความเชื่อถือดังกล่าว ตราบใดที่ผู้ออกใบรับรองรูทได้รับความเชื่อถือ
แอปพลิเคชัน JavaScript มีความเสี่ยงที่จะเสียหายหรือไม่
ใบรับรองรูท GTS ได้รับการฝังไว้อย่างดีและได้รับความเชื่อถือจากใบรับรองที่ทันสมัยมากที่สุด และข้ามเครื่องหมายจาก GMO GlobalSign ควรตรวจสอบให้แน่ใจว่า การย้ายข้อมูลแม้แต่สำหรับผู้ใช้ปลายทางส่วนใหญ่ที่ใช้เบราว์เซอร์รุ่นเก่า ซึ่งรวมถึง อย่างเป็นทางการ เบราว์เซอร์ที่รองรับ สำหรับ Maps JavaScript API
เบราว์เซอร์ที่ทันสมัยทั้งหมดควรให้ผู้ใช้ปลายทางสามารถยืนยัน และมักจะสามารถแก้ไข ใบรับรองที่เบราว์เซอร์เชื่อถือ แม้ว่าสถานที่จริงจะแตกต่างกันไปตามแต่ละประเทศ เบราว์เซอร์ โดยทั่วไป รายการใบรับรองจะอยู่ใน การตั้งค่า
แอปบนอุปกรณ์เคลื่อนที่มีความเสี่ยงที่จะขัดข้องไหม
อุปกรณ์ Android และ Apple iOS ยังคงได้รับการอัปเดตจากอุปกรณ์เป็นประจำ ก็คาดว่าจะพิสูจน์ได้ในอนาคตด้วย โทรศัพท์ Android รุ่นเก่าที่สุด โมเดลต่างๆ จะมีใบรับรอง GlobalSign Root CA - R1 เป็นอย่างน้อย แม้ว่า รายการใบรับรองที่เชื่อถือได้อาจแตกต่างกันไปตามผู้ผลิตโทรศัพท์มือถือ รุ่นของอุปกรณ์ และ เวอร์ชันของ Android
แต่การรองรับ Root CA ของ GTS รวมถึง GTS Root R1 อาจยังอยู่ ถูกจำกัดใน Android เวอร์ชันก่อน 10
สำหรับอุปกรณ์ iOS นั้น Apple จะเก็บรักษารายการ CA รูทที่เชื่อถือได้สำหรับ iOS ล่าสุดแต่ละรายการ เวอร์ชันในหน้าการสนับสนุน อย่างไรก็ตาม iOS เวอร์ชัน 5 ขึ้นไปทั้งหมดจะรองรับ GlobalSign Root CA - R1
ระบบรองรับ CA รูทของ GTS รวมถึง GTS Root R1 ตั้งแต่เวอร์ชัน iOS 12.1.3.
ดูคำถาม ฉันจะตรวจสอบใบรับรองรูทที่เชื่อถือได้ในโทรศัพท์มือถือได้อย่างไร เพื่อดูรายละเอียดเพิ่มเติม
เบราว์เซอร์หรือระบบปฏิบัติการของฉันจะมีใบรับรองรูทของ Google Trust Services เมื่อใด
Google ได้ทำงานร่วมกับบุคคลที่สามรายใหญ่ทั้งหมดในช่วงหลายปีที่ผ่านมา การดูแลรักษากลุ่มใบรับรองรูทที่เชื่อถือได้และใช้กันอย่างแพร่หลาย ตัวอย่างเช่น ผู้ผลิตระบบปฏิบัติการ เช่น Apple และ Microsoft รวมถึง เป็นเจ้าของทีม Android และ Chrome OS เบราว์เซอร์ เช่น Mozilla, Apple Microsoft แต่รวมถึงทีม Chrome ของ Google เองด้วย ผู้ผลิตฮาร์ดแวร์ เช่น โทรศัพท์, กล่องรับสัญญาณ, ทีวี, คอนโซลเกม, เครื่องพิมพ์ เป็นต้น
ดังนั้น จึงเป็นไปได้อย่างยิ่งว่าระบบใดๆ ที่ได้รับการบำรุงรักษาอยู่ในปัจจุบัน รองรับ GTS Root CA ใหม่ของ Google ซึ่งรวมถึง GTS Root R1 และแม้กระทั่งเวอร์ชันเก่า ระบบมีแนวโน้มที่จะรองรับ GlobalSign Root CA - R1 ซึ่งจะ ซึ่งใช้สำหรับลงชื่อในใบรับรองที่ออกโดย Google ระหว่างปีต่อๆ ไป
อย่างไรก็ตาม เนื่องจากลำดับเวลาในการรวมใบรับรองของบุคคลที่สามนั้น การควบคุมของ Google คำแนะนำทั่วไปที่ดีที่สุดที่เราจะมอบให้ได้คือตรวจสอบ มีการอัปเดตระบบที่พร้อมให้บริการอย่างสม่ำเสมอ
เลือกบุคคลที่สาม เช่น โปรแกรมใบรับรอง CA ของ Mozilla ของตัวเอง ลำดับเวลาของการรวมใบรับรอง
การแก้ปัญหา
ฉันจะหาเครื่องมือที่ต้องการได้จากที่ไหน
กำลังเคิร์ล
หากการเผยแพร่ระบบปฏิบัติการไม่มี curl
คุณก็ดาวน์โหลดได้
จาก https://curl.haxx.se/ คุณสามารถทำอย่างใดอย่างหนึ่งต่อไปนี้
ให้ดาวน์โหลดแหล่งที่มาและคอมไพล์เครื่องมือด้วยตัวเอง หรือดาวน์โหลด
ไบนารี หากมีสำหรับแพลตฟอร์มของคุณ
การรับ OpenSSL
หากการเผยแพร่ระบบปฏิบัติการไม่มี openssl
คุณก็ดาวน์โหลดได้
แหล่งที่มาจาก https://www.openssl.org/
และคอมไพล์เครื่องมือ คุณสามารถดูรายการไบนารีที่สร้างโดยบุคคลที่สามได้ผ่าน
https://www.openssl.org/community/binaries.html.
อย่างไรก็ตาม งานสร้างเหล่านี้ไม่ได้รับการสนับสนุนหรือด้วยวิธีการที่เฉพาะเจาะจงใดๆ ได้รับการรับรองโดย
ทีม OpenSSL
รับ Wireshark, Tshark หรือ Tcpdump
แม้ว่า Linux รูปแบบต่างๆ ส่วนใหญ่จะมี wireshark
แต่เครื่องมือบรรทัดคำสั่ง tshark
และ tcpdump
, เวอร์ชัน 2 เวอร์ชันแรกที่คอมไพล์ไว้ล่วงหน้าสำหรับระบบปฏิบัติการอื่นๆ อาจ
ได้ที่ https://www.wireshark.org
ดูซอร์สโค้ดสำหรับ Tcpdump และ LibPCAP ได้ที่ https://www.tcpdump.org.
เอกสารประกอบสำหรับเครื่องมือที่มีประโยชน์เหล่านี้อยู่ใน คู่มือผู้ใช้ Wireshark ในหน้าแมนของ Tshark และในหน้าแมนของ Tcpdump ตามลำดับ
การรับเครื่องมือคีย์ Java
ควรจัดส่งเครื่องมือบรรทัดคำสั่ง keytool
พร้อม Java ทั้งหมด
เวอร์ชัน Development Kit (JDK) หรือ Java Runtime Environment (JRE) ติดตั้ง
ที่จะได้รับ keytool.
แต่การใช้ keytool
มักไม่เกิดขึ้น
จำเป็นสำหรับการยืนยันใบรับรองรูท ยกเว้นกรณีที่แอปพลิเคชันของคุณสร้างขึ้น
โดยใช้ Java
สิ่งที่ต้องทำเมื่อเวอร์ชันที่ใช้งานจริงหยุดทำงาน
การดำเนินการหลักสำหรับคุณคือการติดตั้งรูทที่กำหนด ใบรับรองจาก กลุ่ม CA รูทของ Google ที่เชื่อถือได้เข้า ใบรับรองรูทจะจัดเก็บแอปพลิเคชันของคุณ
- ทำงานร่วมกับผู้ดูแลระบบเพื่ออัปเกรด ที่เก็บใบรับรองรูท
- ดูคำถามที่พบบ่อยนี้เพื่อดูคำแนะนำที่เกี่ยวข้องกับระบบของคุณ
- หากต้องการความช่วยเหลือเพิ่มเติมเฉพาะแพลตฟอร์มหรือระบบ โปรดติดต่อ ช่องทางการสนับสนุนด้านเทคนิคที่ผู้ให้บริการระบบมีให้
- หากต้องการความช่วยเหลือทั่วไป โปรดติดต่อทีมสนับสนุนของเราตามที่อธิบายไว้ใน ส่วน ติดต่อทีมสนับสนุนของ Google Maps Platform หมายเหตุ: สำหรับปัญหาเฉพาะแพลตฟอร์ม เราจะมอบคำแนะนำอย่างเต็มที่เท่านั้น พื้นฐาน
- ติดดาวปัญหาสาธารณะ 186840968 สำหรับ อัปเดตเพิ่มเติมเกี่ยวกับการย้ายข้อมูล
การติดต่อฝ่ายสนับสนุนของ Google Maps Platform
การแก้ปัญหาเบื้องต้น
ดูส่วน วิธีตรวจสอบว่าที่เก็บใบรับรองรูทของฉันต้องอัปเดตหรือไม่ เพื่อดูวิธีการแก้ปัญหาทั่วไป
ส่วน การจัดการใบรับรองที่เชื่อถือได้อาจ ให้ข้อมูลที่มีประโยชน์หากคุณต้องการนำเข้าหรือส่งออก ใบรับรอง
หากปัญหายังไม่ได้รับการแก้ไข และคุณตัดสินใจติดต่อ Google Maps Platform สนับสนุน และจัดเตรียมข้อมูลต่อไปนี้ด้วย
- เซิร์ฟเวอร์ที่ได้รับผลกระทบอยู่ที่ไหน
- บริการของคุณกำลังเรียกใช้ที่อยู่ IP ใดของ Google
- API ใดที่ได้รับผลกระทบจากปัญหานี้
- ปัญหาเกิดขึ้นเมื่อไหร่
เอาต์พุตของคำสั่งต่อไปนี้
curl -vvI https://maps.googleapis.com; \ openssl s_client -connect maps.googleapis.com:443 -showcerts </dev/null; \ curl -vvI https://good.gtsr1.demo.pki.goog/; \ openssl s_client -connect good.gtsr1.demo.pki.goog:443 -showcerts </dev/null; \ curl -vvI https://good.gtsr1x.demo.pki.goog/; \ openssl s_client -connect good.gtsr1x.demo.pki.goog:443 -showcerts </dev/null;
โปรดดูวิธีการใช้เครื่องมือที่จำเป็นในคำถาม ฉันจะหาเครื่องมือที่ต้องการได้จากที่ไหน
การยื่นเคสขอรับความช่วยเหลือ
โปรดทำตามวิธีการสำหรับ การสร้างเคสขอรับความช่วยเหลือ ต่ำกว่า แหล่งข้อมูลและการสนับสนุน Google Maps Platform
เมื่อส่งเคสขอรับความช่วยเหลือ นอกเหนือจากข้อมูลที่ระบุในส่วน การแก้ปัญหาเบื้องต้น โปรดระบุ ดังต่อไปนี้:
- ที่อยู่ IP สาธารณะของคุณคืออะไร
- ที่อยู่ IP สาธารณะของเซิร์ฟเวอร์ DNS คืออะไร
- หากเป็นไปได้ การบันทึกแพ็กเก็ต tcpdump หรือ Wireshark ของ TLS ที่ล้มเหลว
การเจรจากับ
https://maps.googleapis.com/
ในรูปแบบ PCAP โดยใช้ ความยาวสแนปชอตที่มีขนาดใหญ่เพียงพอสำหรับการบันทึกทั้งแพ็กเก็ตโดยไม่มี ตัดทอน (เช่น การใช้-s0
ในtcpdump
เวอร์ชันเก่า) - หากเป็นไปได้ บันทึกข้อความที่ตัดตอนมาจากบริการของคุณเพื่อแสดงการเชื่อมต่อ TLS ที่แน่นอน เหตุผลที่ล้มเหลว ควรเป็นข้อมูลเชนใบรับรองเซิร์ฟเวอร์แบบเต็ม
โปรดดูวิธีการใช้เครื่องมือที่จำเป็นในคำถาม ฉันจะหาเครื่องมือที่ต้องการได้จากที่ไหน
โพสต์เกี่ยวกับปัญหาสาธารณะ 186840968
เมื่อโพสต์ความคิดเห็นเกี่ยวกับปัญหาสาธารณะ 186840968 โปรดใส่ข้อมูลที่ระบุในส่วน การแก้ปัญหาเบื้องต้น
ฉันจะระบุที่อยู่สาธารณะของ DNS ได้อย่างไร
ใน Linux คุณเรียกใช้คำสั่งต่อไปนี้ได้
dig -t txt o-o.myaddr.l.google.com
ใน Windows คุณสามารถใช้ nslookup ใน แบบอินเทอร์แอกทีฟ โหมด:
C:\> nslookup -
set type=TXT
o-o.myaddr.l.google.com
วิธีตีความเอาต์พุต curl
การเรียกใช้ curl
ด้วยแฟล็ก -vvI
มีประโยชน์มาก
ตัวอย่างวิธีการตีความเอาต์พุตมีดังนี้
- บรรทัดที่ขึ้นต้นด้วย "
*
" แสดงเอาต์พุตจาก TLS การต่อรอง รวมถึงข้อมูลการสิ้นสุดการเชื่อมต่อ - บรรทัดที่ขึ้นต้นด้วย "
>
" แสดงคำขอ HTTP ขาออกที่curl
ส่ง - บรรทัดที่ขึ้นต้นด้วย "
<
" แสดงการตอบกลับ HTTP ที่ได้จาก เซิร์ฟเวอร์ - หากโปรโตคอลเป็น HTTPS แสดงว่ามี "
>
" หรือ "<
" เส้นแบ่งเป็น แฮนด์เชค TLS สำเร็จ
ใช้กลุ่มใบรับรองรูทและไลบรารี TLS
การเรียกใช้ curl
พร้อมกับธง -vvI
ยังพิมพ์คำว่า
ที่ใช้ที่จัดเก็บใบรับรองรูท แต่ผลลัพธ์จริงอาจแตกต่างกันไปตามระบบดังที่แสดงไว้ที่นี่
เอาต์พุตจากเครื่อง Linux ของ Red Hat ที่มี curl
ที่ลิงก์กับ NSS
อาจมีบรรทัดเหล่านี้:
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
เอาต์พุตจากเครื่อง Ubuntu หรือ Debian Linux อาจมีบรรทัดต่อไปนี้
* successfully set certificate verify locations:
* CAfile: none
CApath: /etc/ssl/certs
เอาต์พุตจากเครื่อง Ubuntu หรือ Debian Linux โดยใช้ไฟล์ PEM ของใบรับรองรูทของ Google
ที่กำหนดโดยใช้แฟล็ก --cacert
อาจมีบรรทัดต่อไปนี้
* successfully set certificate verify locations:
* CAfile: /home/<user>/Downloads/roots.pem
CApath: /etc/ssl/certs
User Agent
คำขอขาออกมีส่วนหัว User-Agent ซึ่งอาจมีประโยชน์
ข้อมูลเกี่ยวกับ curl
และระบบของคุณ
ตัวอย่างจากเครื่อง Linux ของ Red Hat
> HEAD / HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh1/1.4.2
> Host: maps.googleapis.com
> Accept: */*
>
แฮนด์เชค TLS ล้มเหลว
บรรทัดต่างๆ เช่น บรรทัดในตัวอย่างโค้ดนี้ เป็นการชี้ให้เห็นการเชื่อมต่อที่เกิดขึ้น
สิ้นสุดแฮนด์เชคกลาง TLS เนื่องจากใบรับรองเซิร์ฟเวอร์ที่ไม่น่าเชื่อถือ
ไม่มีผลลัพธ์การแก้ไขข้อบกพร่องที่ขึ้นต้นด้วย >
หรือ <
ด้วย
สัญญาณบอกสถานะที่ชัดเจนว่าพยายามเชื่อมต่อที่ไม่สำเร็จ:
*** SSLv3, TLS alert, Server hello (2):
* SSL certificate problem: unable to get local issuer certificate
* Closing connection 0**
แฮนด์เชค TLS สำเร็จ
แฮนด์เชค TLS ที่สำเร็จจะแสดงด้วยเส้นที่มีลักษณะคล้ายกัน
ไว้ในโค้ดตัวอย่าง ชุดการเข้ารหัสที่ใช้สำหรับการเข้ารหัส
ควรระบุการเชื่อมต่อ เช่นเดียวกับรายละเอียดของเซิร์ฟเวอร์ที่ยอมรับ
ใบรับรอง นอกจากนี้ การแสดงบรรทัดที่ขึ้นต้นด้วย >
หรือ
<
ระบุว่าส่งการรับส่งข้อมูล HTTP ของเพย์โหลดได้สำเร็จ
ผ่านการเชื่อมต่อที่เข้ารหัส TLS
* Trying 108.177.15.95:443...
* Connected to maps.googleapis.com (108.177.15.95) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
* CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
* subject: C=US; ST=California; L=Mountain View; O=Google LLC; CN=upload.video.google.com
* start date: Mar 23 08:24:47 2021 GMT
* expire date: Jun 15 08:24:46 2021 GMT
* subjectAltName: host "maps.googleapis.com" matched cert's "*.googleapis.com"
* issuer: C=US; O=Google Trust Services; CN=GTS CA 1O1
* SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x55c4acf0c560)
> HEAD / HTTP/2
> Host: maps.googleapis.com
> user-agent: curl/7.74.0
> accept: */*
>
> HTTP/2 302
…
วิธีพิมพ์ใบรับรองเซิร์ฟเวอร์ที่ได้รับในรูปแบบที่มนุษย์อ่านได้
สมมติว่าเอาต์พุตอยู่ในรูปแบบ PEM เช่น เอาต์พุตจาก
openssl s_client -connect maps.googleapis.com:443 -showcerts </dev/null
,
คุณสามารถพิมพ์ใบรับรองที่ให้บริการได้โดยทำตามขั้นตอนต่อไปนี้
คัดลอกใบรับรองที่เข้ารหัส Base 64 ทั้งหมดซึ่งรวมถึงส่วนหัวและส่วนท้าย:
-----BEGIN CERTIFICATE----- … -----END CERTIFICATE-----
จากนั้นให้ทำดังนี้
openssl x509 -inform pem -noout -text ````
จากนั้นวางเนื้อหาของบัฟเฟอร์การคัดลอกลงในเทอร์มินัล
กดปุ่ม Return
ตัวอย่างเช่น อินพุตและเอาต์พุต โปรดดูส่วน วิธีพิมพ์ใบรับรอง PEM ในรูปแบบที่มนุษย์อ่านได้
ใบรับรองของ Google แบบข้ามการรับรองมีลักษณะอย่างไรใน OpenSSL
…
---
Certificate chain
0 s:C = US, ST = California, L = Mountain View, O = Google LLC, CN = good.gtsr1x.demo.pki.goog
i:C = US, O = Google Trust Services LLC, CN = GTS Y1
-----BEGIN CERTIFICATE-----
…
-----END CERTIFICATE-----
1 s:C = US, O = Google Trust Services LLC, CN = GTS Y1
i:C = US, O = Google Trust Services LLC, CN = GTS Root R1
-----BEGIN CERTIFICATE-----
…
-----END CERTIFICATE-----
2 s:C = US, O = Google Trust Services LLC, CN = GTS Root R1
i:C = BE, O = GlobalSign nv-sa, OU = Root CA, CN = GlobalSign Root CA
-----BEGIN CERTIFICATE-----
…
-----END CERTIFICATE-----
---
Server certificate
subject=C = US, ST = California, L = Mountain View, O = Google LLC, CN = good.gtsr1x.demo.pki.goog
issuer=C = US, O = Google Trust Services LLC, CN = GTS Y1
---
…
การจัดการใบรับรองที่เชื่อถือได้
ฉันจะตรวจสอบใบรับรองรูทที่เชื่อถือได้ในโทรศัพท์มือถือได้อย่างไร
ใบรับรองที่เชื่อถือได้ของ Android
ตามที่กล่าวไว้ในคำถาม แอปบนอุปกรณ์เคลื่อนที่มีความเสี่ยงที่จะขัดข้องไหม, ตั้งแต่เวอร์ชัน 4.0 เป็นต้นไป Android ได้อนุญาตให้ผู้ใช้โทรศัพท์มือถือตรวจสอบรายการ ใบรับรองที่เชื่อถือได้ในการตั้งค่า ตารางนี้แสดงการตั้งค่าที่แน่นอน เส้นทางเมนู:
เวอร์ชันของ Android | เส้นทางเมนู |
---|---|
1.x, 2.x, 3.x | ไม่มี |
4.x, 5.x, 6.x, 7.x | การตั้งค่า > ความปลอดภัย > ข้อมูลเข้าสู่ระบบที่เชื่อถือได้ |
8.x 9 | การตั้งค่า > ความปลอดภัยและ สถานที่ > การเข้ารหัสและ ข้อมูลเข้าสู่ระบบ > ข้อมูลเข้าสู่ระบบที่เชื่อถือได้ |
10+ | การตั้งค่า > ความปลอดภัย > ขั้นสูง > การเข้ารหัสและ ข้อมูลเข้าสู่ระบบ > ข้อมูลเข้าสู่ระบบที่เชื่อถือได้ |
ตารางนี้แสดงความพร้อมใช้งานที่เป็นไปได้ของรูทที่สำคัญที่สุด ใบรับรองต่อเวอร์ชัน Android โดยอิงตามการยืนยันด้วยตนเองโดยใช้ Android ที่พร้อมใช้งานในปัจจุบัน อิมเมจระบบของอุปกรณ์เสมือน (AVD) กลับไปใช้ ca-certificates ของ AOSP ประวัติเวอร์ชันของที่เก็บ Git ที่อิมเมจระบบไม่พร้อมใช้งานอีกต่อไป:
เวอร์ชันของ Android | GTS Root R1 | GlobalSign Root CA - R1 | GlobalSign Root R2 (ใช้ได้ถึงวันที่ 15 ธันวาคม 2021) |
---|---|---|---|
2.3, 3.2, 4.x, 5.x, 6.x, 7.x, 8.x, 9 | |||
10+ |
โดยทั่วไปจะอัปเดตที่เก็บใบรับรองรูทของระบบ Android ไม่ได้ โดยไม่ต้องอัปเดตเฟิร์มแวร์หรือรูทอุปกรณ์ แต่ใน Android ส่วนใหญ่ เวอร์ชันที่ยังคงมีการใช้งานแบบกว้าง ชุดปัจจุบันของรูทที่เชื่อถือได้ สามารถให้บริการโดยไม่หยุดชะงักเป็นเวลาหลายปีเพื่อ มาจากอายุการใช้งานที่แท้จริงของอุปกรณ์ส่วนใหญ่ที่มีอยู่ในปัจจุบัน
เริ่มตั้งแต่เวอร์ชัน 7.0 เป็นต้นไป Android จะมอบ วิธีเพิ่มใบรับรองที่เชื่อถือได้ซึ่งได้รับความไว้วางใจจาก แอปพลิเคชัน ซึ่งทำได้ด้วยการรวมใบรับรองไว้กับแอปพลิเคชันและ สร้างการกำหนดค่าความปลอดภัยของเครือข่ายที่กำหนดเอง ตามที่อธิบายไว้ใน แนวทางปฏิบัติแนะนำสำหรับ Android ด้านความปลอดภัยและ ความเป็นส่วนตัว การกำหนดค่าความปลอดภัยของเครือข่าย เอกสารการฝึกอบรม
อย่างไรก็ตาม เนื่องจากนักพัฒนาแอปพลิเคชันบุคคลที่สามจะไม่สามารถควบคุม การกำหนดค่าความปลอดภัยของเครือข่ายของการเข้าชมที่มาจาก APK ของบริการ Google Play การดำเนินการดังกล่าวน่าจะให้วิธีแก้ปัญหาเพียงบางส่วนเท่านั้น
ในอุปกรณ์เดิมรุ่นเก่า ตัวเลือกเดียวที่ใช้ได้คือการพึ่งพา CA ที่ผู้ใช้เพิ่ม ซึ่งจะติดตั้งโดยนโยบายกลุ่มขององค์กรที่มีผลต่อปลายทาง อุปกรณ์ของผู้ใช้ หรือโดยตัวผู้ใช้ปลายทางเอง
Trust Store ของ iOS
แม้ว่า Apple จะไม่แสดงชุดใบรับรองรูทที่เชื่อถือได้ตามค่าเริ่มต้นโดยตรง สำหรับผู้ใช้โทรศัพท์มือถือ บริษัทมีลิงก์ไปยังชุด CA รูทที่เชื่อถือได้สำหรับ iOS เวอร์ชัน 5 ขึ้นไปจากบทความสนับสนุนของ Apple
- รายการใบรับรองรูทที่เชื่อถือได้ที่มีอยู่ใน iOS 12.1.3, macOS 10.14.3, watchOS 5.1.3 และ tvOS 12.1.2
- iOS 5 และ iOS 6: รายการใบรับรองรูทที่เชื่อถือได้ที่มี
แต่ใบรับรองอื่นๆ ที่ติดตั้งในอุปกรณ์ iOS ควรเป็น แสดงในการตั้งค่า > ทั่วไป > โปรไฟล์ หากไม่มีตัวเลือกเพิ่มเติม ติดตั้งใบรับรองแล้ว รายการเมนูโปรไฟล์อาจไม่แสดง
ตารางนี้แสดงความพร้อมใช้งานของใบรับรองรูทที่สำคัญที่สุด ตามเวอร์ชัน iOS โดยอิงตามแหล่งที่มาข้างต้น
เวอร์ชัน iOS | GTS Root R1 | GlobalSign Root CA - R1 | GlobalSign Root R2 (ใช้ได้ถึงวันที่ 15 ธันวาคม 2021) |
---|---|---|---|
5, 6, 7, 8, 9, 10, 11, 12.0 | |||
12.1.3+ |
ที่เก็บใบรับรองรูทของระบบอยู่ที่ไหนและจะอัปเดตได้อย่างไร
ตำแหน่งของที่เก็บใบรับรองรูทเริ่มต้นจะแตกต่างกันไปตามระบบปฏิบัติการ และใช้ไลบรารี SSL/TLS แต่ใน Linux ส่วนใหญ่ รูทที่เป็นค่าเริ่มต้น ใบรับรองจะอยู่ในรูปแบบอย่างใดอย่างหนึ่งต่อไปนี้
/usr/local/share/ca-certificates
: Debian, Ubuntu, RHEL รุ่นเก่า และ เวอร์ชัน CentOS/etc/pki/ca-trust/source/anchors
และ/usr/share/pki/ca-trust-source
: Fedora, RHEL และ CentOS เวอร์ชันใหม่/var/lib/ca-certificates
: OpenSUSE
เส้นทางใบรับรองอื่นๆ อาจรวมถึง
/etc/ssl/certs
: Debian, Ubuntu/etc/pki/tls/certs
: RHEL, CentOS
ใบรับรองบางรายการในไดเรกทอรีเหล่านี้มีแนวโน้มที่จะเป็นลิงก์สัญลักษณ์ไปยังไฟล์ ในไดเรกทอรีอื่น
ที่เก็บใบรับรองรูทของ OpenSSL
สำหรับแอปพลิเคชันที่ใช้ OpenSSL คุณสามารถดำเนินการต่อไปนี้ได้ ตรวจสอบตำแหน่งที่กำหนดค่าไว้ของคอมโพเนนต์ที่ติดตั้ง ซึ่งรวมถึงค่าเริ่มต้น ที่เก็บใบรับรองรูทโดยใช้คำสั่งต่อไปนี้
openssl version -d
คำสั่งจะพิมพ์ OPENSSLDIR
ซึ่งตรงกับระดับบนสุด
ไดเรกทอรีและการกำหนดค่าของไลบรารีจะอยู่ภายใต้
OPENSSLDIR: "/usr/lib/ssl"
ที่เก็บใบรับรองรูทอยู่ในไดเรกทอรีย่อย certs
ls -l /usr/lib/ssl/certs
lrwxrwxrwx 1 root root 14 Apr 21 2020 /usr/lib/ssl/certs -> /etc/ssl/certs
ls -l /etc/ssl/certs
…
-rw-r--r-- 1 root root 214904 Apr 15 17:01 ca-certificates.crt
…
lrwxrwxrwx 1 root root 50 Apr 15 16:57 GTS_Root_R1.pem -> /usr/share/ca-certificates/mozilla/GTS_Root_R1.crt
…
หาก OpenSSL ใช้ที่เก็บใบรับรองรูทของระบบเริ่มต้นเหมือนใน ในตัวอย่างข้างต้น ให้ตรวจสอบส่วนระดับบนสุด ที่เก็บใบรับรองรูทของระบบอยู่ที่ไหนและฉันจะอัปเดตได้อย่างไร เพื่อให้แน่ใจว่ากลุ่มใบรับรองรูทของระบบเป็นปัจจุบัน
โปรดดูวิธีการรับ openssl
ที่หัวข้อ
การรับ OpenSSL
ที่เก็บใบรับรองรูทของ Java
แอปพลิเคชัน Java อาจใช้ที่เก็บใบรับรองรูทของตนเองซึ่งทำงานบน Linux
โดยทั่วไปจะอยู่ที่ /etc/pki/java/cacerts
หรือ
/usr/share/ca-certificates-java
ซึ่งสามารถจัดการโดยใช้ Java keytool
เครื่องมือบรรทัดคำสั่ง
หากต้องการนำเข้าใบรับรองแต่ละรายการไปยังที่เก็บใบรับรอง Java ให้ออก คำสั่งต่อไปนี้
keytool -import -trustcacerts -file cert.pem -alias alias -keystore certs.jks
เพียงแทนที่ cert.pem
ด้วยไฟล์ใบรับรองที่เกี่ยวข้องกับแต่ละรายการ
ใบรับรองรูทที่แนะนำ alias
ซึ่งมีใบรับรองที่ไม่ซ้ำกันแต่มีความหมาย
และ certs.jks
พร้อมกับไฟล์ฐานข้อมูลใบรับรองที่ใช้ใน
ของคุณ
โปรดดูข้อมูลเพิ่มเติมที่ Oracle และ Stack Overflow บทความ:
- ข้อมูลอ้างอิงเครื่องมือของแพลตฟอร์ม Java: Standard Edition: เครื่องมือคีย์
- วิธีรับตำแหน่งของ Cacerts ของการติดตั้ง Java ที่เป็นค่าเริ่มต้น
- วิธีนำเข้าใบรับรองแบบ SelfSigned ไปยัง Java Keystore ที่พร้อมใช้งานสำหรับแอปพลิเคชัน Java ทั้งหมดโดยค่าเริ่มต้นอย่างเหมาะสม
ที่เก็บใบรับรองรูทของ Mozilla NSS
แอปพลิเคชันที่ใช้ Mozilla NSS
โดยค่าเริ่มต้น อาจใช้ฐานข้อมูลใบรับรองทั้งระบบ
ภายใต้ /etc/pki/nssdb
หรือร้านค้าเริ่มต้นที่เจาะจงผู้ใช้ภายใต้
${HOME}/.pki/nssdb
ใช้เครื่องมือ certutil
เพื่ออัปเดตฐานข้อมูล NSS
หากต้องการนำเข้าไฟล์ใบรับรองแต่ละไฟล์ไปยังฐานข้อมูล NSS ให้ออก คำสั่งต่อไปนี้
certutil -A -t "C,," -i cert.pem -n cert-name -d certdir
เพียงแทนที่ cert.pem
ด้วยไฟล์ใบรับรองที่เกี่ยวข้องกับแต่ละรายการ
ใบรับรองรูทที่แนะนำ cert-name
ซึ่งมีใบรับรองที่มีความหมาย
และ certdir
พร้อมกับเส้นทางฐานข้อมูลใบรับรองที่ใช้ใน
ของคุณ
สำหรับข้อมูลเพิ่มเติม โปรดติดต่อ ใบรับรองเครื่องมือ NSS ด้วยตนเอง รวมทั้งเอกสารประกอบของระบบปฏิบัติการ
ที่เก็บใบรับรองรูทของ Microsoft .NET
นักพัฒนาซอฟต์แวร์ Windows .NET อาจพบบทความเกี่ยวกับ Microsoft ต่อไปนี้เป็นอย่างน้อย มีประโยชน์สำหรับการอัปเดตที่เก็บใบรับรองรูท:
รูปแบบไฟล์ใบรับรอง
ไฟล์ PEM คืออะไร
อีเมลที่ปรับปรุงความเป็นส่วนตัว (PEM) เป็นรูปแบบไฟล์ข้อความมาตรฐานที่ได้รับการยอมรับสำหรับการจัดเก็บและส่งการเข้ารหัส ใบรับรอง กุญแจ และอื่นๆ อย่างเป็นทางการเป็นมาตรฐานที่เป็นไปตามกฎหมายใน RFC 7468
แม้ว่ารูปแบบไฟล์จะมนุษย์อ่านได้ แต่ ไบนารีที่เข้ารหัส Base64 ข้อมูลใบรับรองไม่ได้อยู่แค่นั้น อย่างไรก็ตาม ข้อกำหนดเฉพาะของ PEM นั้นอนุญาตให้ กำลังปล่อย ข้อความอธิบาย ก่อนหรือหลังเนื้อหาใบรับรองที่เข้ารหัสแบบข้อความ และเครื่องมือมากมายใช้ เพื่อให้ข้อความสรุปที่ชัดเจนเกี่ยวกับข้อมูลที่เกี่ยวข้องมากที่สุด องค์ประกอบในใบรับรอง
เครื่องมือ เช่น openssl
ยังสามารถใช้เพื่อถอดรหัสใบรับรองทั้งหมดไปยัง
ที่มนุษย์อ่านได้ ดูส่วน
วิธีพิมพ์ใบรับรอง PEM ในรูปแบบที่มนุษย์อ่านได้
เพื่อดูข้อมูลเพิ่มเติม
".crt" คืออะไร
เครื่องมือที่อนุญาตการส่งออกใบรับรองในรูปแบบ PEM โดยทั่วไปจะใช้ นามสกุลไฟล์ ".crt" เพื่อระบุว่าไฟล์ใช้การเข้ารหัสข้อความ
ไฟล์ DER คืออะไร
กฎการเข้ารหัสเฉพาะ (DER) คือรูปแบบไบนารีมาตรฐานสำหรับใบรับรองการเข้ารหัส ใบรับรองใน PEM โดยทั่วไป ใบรับรอง DER ที่เข้ารหัส Base64
".cer" คืออะไร
ไฟล์ที่ส่งออกที่มี ".cer" คำต่อท้ายอาจมีใบรับรองที่เข้ารหัสด้วย PEM แต่ส่วนใหญ่จะเป็นไบนารี มักจะเป็นใบรับรองที่เข้ารหัส DER โดย convention, ".cer" โดยทั่วไปจะมีใบรับรองเพียงใบเดียวเท่านั้น
ระบบปฏิเสธการนำเข้าใบรับรองทั้งหมดจากroots.pem
บางระบบ เช่น Java keytool
สามารถนำเข้าใบรับรองจาก
ไฟล์ PEM แม้ว่าจะมีหลายไฟล์ก็ตาม ดูคำถาม
ฉันจะแยกใบรับรองแต่ละรายการจากroots.pem ได้อย่างไร
เพื่อดูวิธีการแยกไฟล์ก่อน
ฉันจะแยกใบรับรองแต่ละรายการจากroots.pem ได้อย่างไร
คุณสามารถแยก roots.pem
ออกเป็นใบรับรองคอมโพเนนต์โดยใช้สิ่งต่อไปนี้
สคริปต์ Bash แบบง่าย:
csplit -z -f roots.pem. roots.pem '/-----END CERTIFICATE-----/+1' '{*}' &>/dev/null && \
for f in roots.pem.*; \
do mv "${f}" $(openssl x509 -in "${f}" -noout -issuer_hash).pem; \
done
การดำเนินการนี้จะสร้างไฟล์ PEM หลายรายการที่คล้ายกับไฟล์ที่แสดงในรายการ ที่นี่:
ls -l *.pem
-rw-r----- 1 <user> <group> 2217 Apr 28 11:04 02265526.pem
-rw-r----- 1 <user> <group> 1722 Apr 28 11:04 062cdee6.pem
-rw-r----- 1 <user> <group> 1279 Apr 28 11:04 0a775a30.pem
-rw-r----- 1 <user> <group> 2425 Apr 28 11:04 1001acf7.pem
-rw-r----- 1 <user> <group> 1796 Apr 28 11:04 106f3e4d.pem
-rw-r----- 1 <user> <group> 1315 Apr 28 11:04 1d3472b9.pem
-rw-r----- 1 <user> <group> 1919 Apr 28 11:04 244b5494.pem
-rw-r----- 1 <user> <group> 1668 Apr 28 11:04 2b349938.pem
-rw-r----- 1 <user> <group> 1651 Apr 28 11:04 2c543cd1.pem
-rw-r----- 1 <user> <group> 1858 Apr 28 11:04 3513523f.pem
-rw-r----- 1 <user> <group> 2000 Apr 28 11:04 40547a79.pem
-rw-r----- 1 <user> <group> 1862 Apr 28 11:04 4a6481c9.pem
-rw-r----- 1 <user> <group> 1927 Apr 28 11:04 4bfab552.pem
-rw-r----- 1 <user> <group> 1745 Apr 28 11:04 5ad8a5d6.pem
-rw-r----- 1 <user> <group> 1813 Apr 28 11:04 607986c7.pem
-rw-r----- 1 <user> <group> 2425 Apr 28 11:04 626dceaf.pem
-rw-r----- 1 <user> <group> 1738 Apr 28 11:04 653b494a.pem
-rw-r----- 1 <user> <group> 2294 Apr 28 11:04 6b99d060.pem
-rw-r----- 1 <user> <group> 2510 Apr 28 11:04 75d1b2ed.pem
-rw-r----- 1 <user> <group> 1788 Apr 28 11:04 76cb8f92.pem
-rw-r----- 1 <user> <group> 1383 Apr 28 11:04 7f3d5d1d.pem
-rw-r----- 1 <user> <group> 1668 Apr 28 11:04 93bc0acc.pem
-rw-r----- 1 <user> <group> 1220 Apr 28 11:04 9c8dfbd4.pem
-rw-r----- 1 <user> <group> 1838 Apr 28 11:04 9d04f354.pem
-rw-r----- 1 <user> <group> 1279 Apr 28 11:04 a3418fda.pem
-rw-r----- 1 <user> <group> 2194 Apr 28 11:04 aee5f10d.pem
-rw-r----- 1 <user> <group> 1249 Apr 28 11:04 b0e59380.pem
-rw-r----- 1 <user> <group> 1882 Apr 28 11:04 b1159c4c.pem
-rw-r----- 1 <user> <group> 2346 Apr 28 11:04 b727005e.pem
-rw-r----- 1 <user> <group> 1940 Apr 28 11:04 cbf06781.pem
-rw-r----- 1 <user> <group> 2609 Apr 28 11:04 d6325660.pem
-rw-r----- 1 <user> <group> 2474 Apr 28 11:04 dc4d6a89.pem
-rw-r----- 1 <user> <group> 1358 Apr 28 11:04 dd8e9d41.pem
-rw-r----- 1 <user> <group> 1972 Apr 28 11:04 ee64a828.pem
-rw-r----- 1 <user> <group> 1462 Apr 28 11:04 eed8c118.pem
-rw-r----- 1 <user> <group> 1944 Apr 28 11:04 f081611a.pem
-rw-r----- 1 <user> <group> 1488 Apr 28 11:04 f30dd6ad.pem
-rw-r----- 1 <user> <group> 1975 Apr 28 11:04 f387163d.pem
-rw-r----- 1 <user> <group> 2632 Apr 28 11:04 fc5a8f99.pem
-rw-r----- 1 <user> <group> 72865 Apr 20 12:44 roots.pem
คุณจะนำเข้าไฟล์ PEM แต่ละรายการ เช่น 02265526.pem
ได้
แยกต่างหาก หรือแปลงเป็นรูปแบบไฟล์ที่เก็บใบรับรองของคุณ
ยอมรับ
วิธีแปลงระหว่างไฟล์ PEM กับรูปแบบที่ระบบของฉันรองรับ
เครื่องมือบรรทัดคำสั่งของชุดเครื่องมือ OpenSSL
openssl
จะใช้เพื่อแปลงไฟล์ระหว่างใบรับรองที่ใช้กันทั่วไปทั้งหมดได้
รูปแบบไฟล์ คำแนะนำในการแปลงไฟล์ PEM เป็นไฟล์ที่ใช้บ่อย
รูปแบบไฟล์ใบรับรองแสดงอยู่ด้านล่างนี้
สำหรับรายการตัวเลือกที่มีทั้งหมด โปรดดู เอกสารประกอบเกี่ยวกับยูทิลิตีบรรทัดคำสั่ง OpenSSL
โปรดดูวิธีการรับ openssl
ที่หัวข้อ
การรับ OpenSSL
ฉันจะแปลงไฟล์ PEM เป็นรูปแบบ DER ได้อย่างไร
เมื่อใช้ openssl
คุณจะออกคำสั่งต่อไปนี้เพื่อแปลงไฟล์จาก PEM ได้
ถึง DER:
openssl x509 -in roots.pem -outform der -out roots.der
ฉันจะแปลงไฟล์ PEM เป็น PKCS #7 ได้อย่างไร
เมื่อใช้ openssl
คุณจะออกคำสั่งต่อไปนี้เพื่อแปลงไฟล์จาก PEM ได้
ถึง PKCS #7:
openssl crl2pkcs7 -nocrl -certfile roots.pem -out roots.p7b
ฉันจะแปลงไฟล์ PEM เป็น PKCS #12 (PFX) ได้อย่างไร
เมื่อใช้ openssl
คุณจะออกคำสั่งต่อไปนี้เพื่อแปลงไฟล์จาก PEM ได้
ถึง PKCS #12:
openssl pkcs12 -export -info -in roots.pem -out roots.p12 -nokeys
คุณต้องระบุรหัสผ่านของไฟล์เมื่อสร้างที่เก็บถาวร PKCS #12 สร้าง โปรดเก็บรหัสผ่านไว้ในที่ปลอดภัย ถ้าคุณไม่นำเข้ารหัสผ่าน PKCS #12 ลงในระบบ
ข้อมูล การพิมพ์ และการส่งออกใบรับรองจากที่เก็บใบรับรองรูท
ฉันจะส่งออกใบรับรองจาก Java Key Store เป็นไฟล์ PEM ได้อย่างไร
เมื่อใช้ keytool
คุณจะสามารถออกคำสั่งต่อไปนี้เพื่อแสดงรายการทั้งหมด
ใบรับรองในที่เก็บใบรับรอง พร้อมกับชื่อแทนที่คุณสามารถใช้เพื่อ
ส่งออกแต่ละรายการ
keytool -v -list -keystore certs.jks
เพียงแทนที่ certs.jks
ด้วยไฟล์ฐานข้อมูลใบรับรองที่ใช้ใน
ของคุณ คำสั่งนี้จะแสดงชื่อแทนของใบรับรองแต่ละรายการ
ถ้าต้องการส่งออก
หากต้องการส่งออกใบรับรองแต่ละรายการในรูปแบบ PEM ให้ใช้คำสั่งต่อไปนี้
keytool -exportcert -rfc -keystore certs.jks -alias alias > alias.pem
เพียงแทนที่ certs.jks
ด้วยไฟล์ฐานข้อมูลใบรับรองที่ใช้ใน
และระบุ alias
และ alias.pem
ที่สอดคล้องกับ
ใบรับรองที่ต้องการส่งออก
สำหรับข้อมูลเพิ่มเติม โปรดดูที่คู่มือแพลตฟอร์ม Java, ข้อมูลอ้างอิงเครื่องมือ Standard Edition: keytool
ฉันจะส่งออกใบรับรองจากที่เก็บใบรับรองรูทของ NSS เป็นไฟล์ PEM ได้อย่างไร
เมื่อใช้ certutil
คุณจะสามารถออกคำสั่งต่อไปนี้เพื่อแสดงรายการทั้งหมด
ใบรับรองในที่เก็บใบรับรอง พร้อมกับชื่อเล่นที่คุณใช้ได้
เพื่อส่งออกแต่ละรายการ
certutil -L -d certdir
เพียงแทนที่ certdir
ด้วยเส้นทางฐานข้อมูลใบรับรองที่ใช้ใน
ของคุณ คำสั่งนี้จะแสดงชื่อเล่นของใบรับรองแต่ละรายการ
ถ้าต้องการส่งออก
หากต้องการส่งออกใบรับรองแต่ละรายการในรูปแบบ PEM ให้ใช้คำสั่งต่อไปนี้
certutil -L -n cert-name -a -d certdir > cert.pem
เพียงแทนที่ certdir
ด้วยเส้นทางฐานข้อมูลใบรับรองที่ใช้ใน
และระบุ cert-name
และ cert.pem
ที่สอดคล้องกับ
ใบรับรองที่ต้องการส่งออก
สำหรับข้อมูลเพิ่มเติม โปรดติดต่อ ใบรับรองเครื่องมือ NSS ด้วยตนเอง รวมทั้งเอกสารประกอบของระบบปฏิบัติการ
วิธีพิมพ์ใบรับรอง PEM ในรูปแบบที่มนุษย์อ่านได้
ในตัวอย่างต่อไปนี้ เราสมมติว่าคุณมีไฟล์ GTS_Root_R1.pem
ด้วย
เนื้อหาต่อไปนี้
# Operating CA: Google Trust Services LLC
# Issuer: C=US, O=Google Trust Services LLC, CN=GTS Root R1
# Subject: C=US, O=Google Trust Services LLC, CN=GTS Root R1
# Label: "GTS Root R1
# Serial: 6e:47:a9:c5:4b:47:0c:0d:ec:33:d0:89:b9:1c:f4:e1
# MD5 Fingerprint: 82:1A:EF:D4:D2:4A:F2:9F:E2:3D:97:06:14:70:72:85
# SHA1 Fingerprint: E1:C9:50:E6:EF:22:F8:4C:56:45:72:8B:92:20:60:D7:D5:A7:A3:E8
# SHA256 Fingerprint: 2A:57:54:71:E3:13:40:BC:21:58:1C:BD:2C:F1:3E:15:84:63:20:3E:CE:94:BC:F9:D3:CC:19:6B:F0:9A:54:72
-----BEGIN CERTIFICATE-----
MIIFWjCCA0KgAwIBAgIQbkepxUtHDA3sM9CJuRz04TANBgkqhkiG9w0BAQwFADBH
MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM
QzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIy
MDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNl
cnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEB
AQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM
f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vX
mX7wCl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7
zUjwTcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0P
fyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtc
vfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4
Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUsp
zBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOO
Rc92wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYW
k70paDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+
DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgF
lQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
HQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBADiW
Cu49tJYeX++dnAsznyvgyv3SjgofQXSlfKqE1OXyHuY3UjKcC9FhHb8owbZEKTV1
d5iyfNm9dKyKaOOpMQkpAWBz40d8U6iQSifvS9efk+eCNs6aaAyC58/UEBZvXw6Z
XPYfcX3v73svfuo21pdwCxXu11xWajOl40k4DLh9+42FpLFZXvRq4d2h9mREruZR
gyFmxhE+885H7pwoHyXa/6xmld01D1zvICxi/ZG6qcz8WpyTgYMpl0p8WnK0OdC3
d8t5/Wk6kjftbjhlRn7pYL15iJdfOBL07q9bgsiG1eGZbYwE8na6SfZu6W0eX6Dv
J4J2QPim01hcDyxC2kLGe4g0x8HYRZvBPsVhHdljUEn2NIVq4BjFbkerQUIpm/Zg
DdIx02OYI5NaAIFItO/Nis3Jz5nu2Z6qNuFoS3FJFDYoOj0dzpqPJeaAcWErtXvM
+SUWgeExX6GjfhaknBZqlxi9dnKlC54dNuYvoS++cJEPqOba+MSSQGwlfnuzCdyy
F62ARPBopY+Udf90WuioAnwMCeKpSwughQtiue+hMZL77/ZRBIls6Kl0obsXs7X9
SQ98POyDGCBDTtWTurQ0sR8WNh8M5mQ5Fkzc4P4dyKliPUDqysU0ArSuiYgzNdws
E3PYJ/HQcu51OyLemGhmW/HGY0dVHLqlCFF1pkgl
-----END CERTIFICATE-----
การพิมพ์ไฟล์ใบรับรองโดยใช้ OpenSSL
การออกคำสั่ง
openssl x509 -in GTS_Root_R1.pem -text
ควรแสดงผลในลักษณะต่อไปนี้
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
6e:47:a9:c5:4b:47:0c:0d:ec:33:d0:89:b9:1c:f4:e1
Signature Algorithm: sha384WithRSAEncryption
Issuer: C = US, O = Google Trust Services LLC, CN = GTS Root R1
Validity
Not Before: Jun 22 00:00:00 2016 GMT
Not After : Jun 22 00:00:00 2036 GMT
Subject: C = US, O = Google Trust Services LLC, CN = GTS Root R1
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (4096 bit)
Modulus:
…
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Subject Key Identifier:
E4:AF:2B:26:71:1A:2B:48:27:85:2F:52:66:2C:EF:F0:89:13:71:3E
Signature Algorithm: sha384WithRSAEncryption
…
โปรดดูวิธีการรับ openssl
ที่หัวข้อ
การรับ OpenSSL
การพิมพ์ใบรับรองโดยใช้ Java Keytool
การออกคำสั่งต่อไปนี้
keytool -printcert -file GTS_Root_R1.pem
ควรแสดงผลในลักษณะต่อไปนี้
Owner: CN=GTS Root R1, O=Google Trust Services LLC, C=US
Issuer: CN=GTS Root R1, O=Google Trust Services LLC, C=US
Serial number: 6e47a9c54b470c0dec33d089b91cf4e1
Valid from: Wed Jun 22 02:00:00 CEST 2016 until: Sun Jun 22 02:00:00 CEST 2036
Certificate fingerprints:
SHA1: E1:C9:50:E6:EF:22:F8:4C:56:45:72:8B:92:20:60:D7:D5:A7:A3:E8
SHA256: 2A:57:54:71:E3:13:40:BC:21:58:1C:BD:2C:F1:3E:15:84:63:20:3E:CE:94:BC:F9:D3:CC:19:6B:F0:9A:54:72
Signature algorithm name: SHA384withRSA
Subject Public Key Algorithm: 4096-bit RSA key
Version: 3
Extensions:
#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
CA:true
PathLen:2147483647
]
#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
Key_CertSign
Crl_Sign
]
#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: E4 AF 2B 26 71 1A 2B 48 27 85 2F 52 66 2C EF F0 ..+&q.+H'./Rf,..
0010: 89 13 71 3E ..q>
]
]
โปรดดูวิธีการรับ keytool
ที่หัวข้อ
การรับเครื่องมือคีย์ Java
ฉันจะดูใบรับรองที่ติดตั้งไว้ในที่เก็บใบรับรองรูทได้อย่างไร
ซึ่งจะแตกต่างกันไปตามระบบปฏิบัติการและไลบรารี SSL/TLS อย่างไรก็ตาม เครื่องมือที่ อนุญาตให้นำเข้าและส่งออกใบรับรองไปยังและจากใบรับรองรูท Store มักจะมีตัวเลือกให้แสดงรายการใบรับรองที่ติดตั้งไว้ด้วย
นอกจากนี้ หากคุณส่งออกใบรับรองรูทที่เชื่อถือได้ไปยัง PEM สำเร็จ หรือที่เก็บใบรับรองรูทของคุณมีไฟล์ PEM ที่จัดเก็บไว้อยู่แล้ว ให้ลองเปิดไฟล์ในโปรแกรมแก้ไขข้อความใดก็ได้ เพราะเป็นไฟล์ข้อความธรรมดา
ไฟล์ PEM อาจมีป้ายกำกับที่ถูกต้อง โดยให้ข้อมูลที่มนุษย์อ่านได้ ผู้ออกใบรับรองที่เกี่ยวข้อง (ตัวอย่างจาก กลุ่ม CA รูทของ Google ที่เชื่อถือได้):
# Operating CA: Google Trust Services LLC
# Issuer: C=US, O=Google Trust Services LLC, CN=GTS Root R1
# Subject: C=US, O=Google Trust Services LLC, CN=GTS Root R1
# Label: "GTS Root R1"
# Serial: 6e:47:a9:c5:4b:47:0c:0d:ec:33:d0:89:b9:1c:f4:e1
# MD5 Fingerprint: 82:1A:EF:D4:D2:4A:F2:9F:E2:3D:97:06:14:70:72:85
# SHA1 Fingerprint: E1:C9:50:E6:EF:22:F8:4C:56:45:72:8B:92:20:60:D7:D5:A7:A3:E8
# SHA256 Fingerprint: 2A:57:54:71:E3:13:40:BC:21:58:1C:BD:2C:F1:3E:15:84:63:20:3E:CE:94:BC:F9:D3:CC:19:6B:F0:9A:54:72
-----BEGIN CERTIFICATE-----
…
-----END CERTIFICATE-----
ไฟล์นี้อาจมีแค่ส่วนของใบรับรอง ในกรณีดังกล่าว ชื่อของ
ไฟล์ เช่น GTS_Root_R1.pem
อาจ
อธิบายว่าใบรับรองเป็นของ CA ใด สตริงใบรับรองระหว่างแท็ก
-----BEGIN CERTIFICATE-----
และโทเค็น -----END CERTIFICATE-----
มีการรับประกันว่าจะไม่ซ้ำกันสำหรับ CA แต่ละราย
อย่างไรก็ตาม แม้ว่าคุณจะไม่มีเครื่องมือข้างต้น เนื่องจากใบรับรองแต่ละรายการใน
กลุ่ม CA รูทของ Google ที่เชื่อถือได้คือ
มีการติดป้ายกำกับอย่างถูกต้อง คุณสามารถจับคู่ CA รูทจาก Bundle Aganist ได้อย่างน่าเชื่อถือ
รายการที่มาจากที่เก็บใบรับรองรูทของคุณ ไม่ว่าจะโดย Issuer
หรือโดยการเปรียบเทียบ
สตริงใบรับรองไฟล์ PEM
เว็บเบราว์เซอร์อาจใช้ที่เก็บใบรับรองรูทของตนเอง หรือต้องใช้ค่าเริ่มต้น ซึ่งได้รับจากปฏิบัติการ อย่างไรก็ตาม เบราว์เซอร์สมัยใหม่ทั้งหมดอาจช่วยให้คุณ จัดการหรือดูชุด CA รูทที่ผู้ใช้เชื่อถือเป็นอย่างน้อย ดูคำถาม แอปพลิเคชัน JavaScript มีความเสี่ยงที่จะเสียหายไหม เพื่อดูรายละเอียดเพิ่มเติม
สำหรับคำแนะนำเฉพาะสำหรับโทรศัพท์มือถือ โปรดดูที่คำถามแยกต่างหาก ฉันจะตรวจสอบใบรับรองรูทที่เชื่อถือได้ในโทรศัพท์มือถือได้อย่างไร
ภาคผนวก
หากต้องการข้อมูลเพิ่มเติม
พึ่งเอกสารประกอบของระบบปฏิบัติการของคุณ เอกสารประกอบ ภาษาการเขียนโปรแกรมของแอปพลิเคชัน และเอกสารประกอบจาก ไลบรารีภายนอกที่แอปพลิเคชันของคุณใช้อยู่
แหล่งข้อมูลอื่นๆ รวมถึงคำถามที่พบบ่อยนี้อาจไม่เป็นปัจจุบัน หรือ ไม่ถูกต้อง และไม่ควรถือว่าเชื่อถือได้ อย่างไรก็ตาม คุณสามารถ ยังคงพบข้อมูลที่มีประโยชน์เกี่ยวกับ ชุมชนถามและตอบของ Stack Exchange ในรูปแบบ เช่นเดียวกับเว็บไซต์อย่าง AdamW บน Linux และอื่นๆ บล็อกยืนยัน และอื่นๆ
และโปรดดู คำถามที่พบบ่อยเกี่ยวกับ Google Trust Services
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับหัวข้อขั้นสูง เช่น การปักหมุดใบรับรอง โปรดทำดังนี้ ค้นหาโครงการความปลอดภัยของเว็บแอปพลิเคชันแบบเปิด (OWASP) การปักหมุดใบรับรองและคีย์สาธารณะ บทความและ ข้อมูลสรุปของการปักหมุด ให้ความรู้ สำหรับวิธีการเฉพาะสำหรับ Android โปรดดู แนวทางปฏิบัติแนะนำสำหรับ Android ด้านความปลอดภัยและ ความเป็นส่วนตัว การรักษาความปลอดภัยด้วย HTTPS และ SSL เอกสารการฝึกอบรม สำหรับการสนทนาเกี่ยวกับการปักหมุดใบรับรองและการปักหมุดคีย์สาธารณะ Android คุณอาจเห็นบล็อกโพสต์ของ Matthew Dolan ความปลอดภัยของ Android: การปักหมุด SSL มีประโยชน์
แนวทางปฏิบัติแนะนำสำหรับ Android ด้านความปลอดภัยและ การฝึกอบรม การกำหนดค่าความปลอดภัยของเครือข่ายด้านความเป็นส่วนตัว เอกสารและบล็อกโพสต์ของ JeroenHD Android 7 Nougat และผู้ออกใบรับรอง จะให้ข้อมูลเพิ่มเติมเกี่ยวกับการจัดการใบรับรองที่เชื่อถือได้เพิ่มเติมใน Android
สำหรับรายการทั้งหมดของ CA รูทที่ AOSP เชื่อถือ โปรดดูที่ ใบรับรอง ca ที่เก็บ Git สําหรับเวอร์ชันใดก็ตามที่อิงตาม Android Forks ที่ไม่เป็นทางการ เช่น LineageOS โปรดดูที่เก็บที่เหมาะสมจากผู้ให้บริการระบบปฏิบัติการ