คำถามที่พบบ่อยเกี่ยวกับการย้ายข้อมูล CA ระดับรูทของ Google Maps Platform

เอกสารนี้ประกอบด้วยส่วนต่อไปนี้

โปรดดูภาพรวมโดยละเอียดเพิ่มเติมเกี่ยวกับการย้ายข้อมูล 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 จะดำเนินต่อไปอย่างไรและเมื่อไร

  1. เฟสแรก (การย้ายข้อมูลไปยัง GS Root R2) ที่ประกาศไปเมื่อเดือนมกราคม 2017 ซึ่งเริ่มต้นไปเมื่อช่วงปล���ยปี 2017 และก็สิ้นสุดไปในช่วงครึ่งแรกของปี 2018
  2. เฟสที่ 2 (การย้ายข้อมูลไปยัง GTS Root R1 Cross) มีการประกาศในเดือนมีนาคม 2021 และจะเปิดตัวในอีกไม่กี่เดือนข้างหน้า ก่อนที่ GS Root R2 จะหมดอายุในวันที่ 15 ธันวาคม 2021

กำหนดการสำหรับระยะการย้ายข้อมูลในภายหลังจะประกาศล่วงหน้า ของการหมดอายุของใบรับรองในอนาคต

อย่างไรก็ตาม คุณจะสามารถพิสูจน์อักษรแอปได้ในอนาคตหาก ที่เก็บใบรับรองรูทของคุณซิงค์กับรายการ CA รูทที่ได้รับการดูแลจัดการใน กลุ่ม CA รูทของ Google ที่เชื่อถือได้

ดูคำถามด้วย เหตุใดฉันจึงควรซิงค์ที่เก็บใบรับรองรูทของฉันกับแพ็กเกจ CA รูทของ Google ที่เชื่อถือได้ เพื่อดูความเป็นมาเพิ่��เติม

แผนการเปิดตัวทั่วไปสำหรับบริการแต่ละอย่างของ Google

  1. การเปิดตัวแบบทีละขั้นจะเริ่มต้นในศูนย์ข้อมูลแห่งเดียว
  2. การทยอยเปิดตัวไปยังศูนย์ข้อมูลต่างๆ เพิ่มเติมจนกว่าจะมีความพร้อมทั่วโลก ที่ครอบคลุม
  3. หากตรวจพบปัญหาร้ายแรงในขั้นตอนใดก็ตาม จะย้อนกลับการทดสอบได้ เป็นการชั่วคราวขณะที่ปัญหาได้รับการแก้ไข
  4. ตามข้อมูลจากการทำซ้ำครั้งก่อน บริการเพิ่มเติมของ 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 ที่เชื่อถือได้เข้า ใบรับรองรูทจะจัดเก็บแอปพลิเคชันของคุณ

  1. ทำงานร่วมกับผู้ดูแลระบบเพื่ออัปเกรด ที่เก็บใบรับรองรูท
  2. ดูคำถามที่พบบ่อยนี้เพื่อดูคำแนะนำที่เกี่ยวข้องกับระบบของคุณ
  3. หากต้องการความช่วยเหลือเพิ่มเติมเฉพาะแพลตฟอร์มหรือระบบ โปรดติดต่อ ช่องทางการสนับสนุนด้านเทคนิคที่ผู้ให้บริการระบบมีให้
  4. หากต้องการความช่วยเหลือทั่วไป โปรดติดต่อทีมสนับสนุนของเราตามที่อธิบายไว้ใน ส่วน ติดต่อทีมสนับสนุนของ Google Maps Platform หมายเหตุ: สำหรับปัญหาเฉพาะแพลตฟอร์ม เราจะมอบคำแนะนำอย่างเต็มที่เท่านั้น พื้นฐาน
  5. ติดดาวปัญหาสาธารณะ 186840968 สำหรับ อัปเดตเพิ่มเติมเกี่ยวกับการย้ายข้อมูล

การติดต่อฝ่ายสนับสนุนของ Google Maps Platform

การแก้ปัญหาเบื้องต้น

ดูส่วน วิธีตรวจสอบว่าที่เก็บใบรับรองรูทของฉันต้องอัปเดตหรือไม่ เพื่อดูวิธีการแก้ปัญหาทั่วไป

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

หากปัญหายังไม่ได้รับการแก้ไข และคุณตัดสินใจติดต่อ Google Maps Platform สนับสนุน และจัดเตรียมข้อมูลต่อไปนี้ด้วย

  1. เซิร์ฟเวอร์ที่ได้รับผลกระทบอยู่ที่ไหน
  2. บริการของคุณกำลังเรียกใช้ที่อยู่ IP ใดของ Google
  3. API ใดที่ได้รับผลกระทบจากปัญหานี้
  4. ปัญหาเกิดขึ้นเมื่อไหร่
  5. เอาต์พุตของคำสั่งต่อไปนี้

    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 การตั้งค่า > ความปลอดภัยและ สถานที่ > การเข้ารหัสและ credentials &gt; ข้อมูลเข้าสู่ระบบที่เชื่อถือได้
10+ การตั้งค่า > ความปลอดภัย > ขั้นสู��� > การเข้ารหัสและ credentials &gt; ข้อมูลเข้าสู่ระบบที่เชื่อถือได้

ตารางนี้แสดงความพร้อมใช้งานที่เป็นไปได้ของรูทที่สำคัญที่สุด ใบรับรองต่อเวอร์ชัน 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 ควรเป็น แสดงในการตั้งค่า > ทั่วไป > โปรไฟล์ หากไม่มีตัวเลือกเพิ่มเติม ติดตั้งใบรับรองแล้ว รายการเมนูโปรไฟล์อาจไม่แสดง

ตารางนี้แสดงความพร้อมใช้งานของใบรับรองรูทที่สำคัญที่สุด ตามเวอร์ชัน 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 บทความ:

ที่เก็บใบรับรองรูทของ 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 โปรดดูที่เก็บที่เหมาะสมจากผู้ให้บริการระบบปฏิบัติการ