ตรวจสอบแพคเกจสำหรับใบรับรองที่หมดอายุใน Mac OS X

ผู้ใช้ Mac จำนวนมากจะดาวน์โหลดไฟล์แพคเกจของโปรแกรมชุดคำสั่งผสมหรือซอฟต์แวร์อื่น ๆ เพื่อที่จะติดตั้งโปรแกรมเหล่านี้ลงในคอมพิวเตอร์หลายเครื่องเพื่อหลีกเลี่ยงการอัปเดตด้วย Mac App Store โดยทั่วไปจะพบได้บ่อยๆกับผู้ดูแลระบบระบบ Mac ซึ่งทำให้การดาวน์โหลดแพกเกจหรือติดตั้งเพียงครั้งเดียวทำได้ง่ายขึ้นและกระจายไปทั่วเครือข่ายหรืออาจติดตั้งด้วยตนเองผ่านไดรฟ์ USB ไม่มีอะไรผิดพลาดกับวิธีนี้เลยและในความเป็นจริงการจัดการ multi-Mac มีประสิทธิภาพมากขึ้น แต่อาจมีปัญหาเกิดขึ้นได้เมื่อโปรแกรมติดตั้งแพคเกจหรือไฟล์อัพเดตมีใบรับรองที่หมดอายุซึ่งจะป้องกันไม่ให้แพคเกจติดตั้งทั้งหมด สถานการณ์ที่เป็นที่ชัดเจนเมื่อคุณได้รับ "(โปรแกรมติดตั้ง) ได้ลงนามกับใบรับรองที่หมดอายุแล้ว" ข้อความแสดงข้อผิดพลาด

เพื่อหลีกเลี่ยงสถานการณ์นี้คุณสามารถตรวจสอบลายเซ็นของแพคเกจด้วยตัวคุณเองเพื่อดูว่าถูกต้องหรือไม่ถ้าพวกเขาหมดอายุหรือถึงแม้ว่าจะไม่มีลายเซ็นเลย

วิธีการตรวจสอบสถานะ Signature Signature ใน Mac OS X กับ pkgutil

โปรแกรมอรรถประโยชน์บรรทัดคำสั่ง pkgutil ที่ยอดเยี่ยมสามารถระบุสถานะของลายเซ็นและใบรับรองของแพคเกจได้อย่างง่ายดาย ใช้งานง่ายดังนั้นให้เปิดแอ็พพลิเคชั่น Terminal จาก / Applications / Utilities / และลองใช้งานด้วยตัวคุณเอง

ไวยากรณ์พื้นฐานที่ใช้สำหรับตรวจสอบสถานะลายเซ็นของแพคเกจเป็นดังนี้:

pkgutil --check-signature /Path/to/Example.pkg

ตีกลับและคุณจะพบว่าลายเซ็นถูกต้องหรือไม่ถ้าลายมือชื่อหมดอายุหรือไม่มีลายเซ็นเลย

ตัวอย่างเช่นสมมติว่าเรามีแพคเกจติดตั้งซอฟต์แวร์ระบบปฏิบัติการ Mac OS X Combo Update ซึ่งเป็นสถานการณ์ทั่วไปสำหรับผู้ดูแลระบบที่อัปเดตเครื่องหลายเครื่องคุณสามารถตรวจสอบสถานะของลายเซ็นแพ็กเกจดังต่อไปนี้

pkgutil --check-signature ~/Downloads/OSXUpdateCombo10.10.2.pkg
Package "OSXUpdateCombo10.10.2.pkg":
Status: signed by a certificate that has since expired

ในกรณีนี้ลายเซ็นสำหรับแพคเกจโปรแกรมปรับปรุงหมดอายุแล้วซึ่งหมายความว่าจะทำให้เกิดข้อผิดพลาดหากพยายามใช้งาน

ไม่ใช่โปรแกรมติดตั้งแพคเกจทั้งหมดมีลายเซ็นอย่างไรก็ตามและในขณะที่ไฟล์อัพเดตซอฟต์แวร์จาก Apple จะเป็นแพคเกจจากบุคคลที่สามมักจะไม่ทำ ตัวอย่างเช่นไฟล์ติดตั้งแพคเกจตัวอย่างนี้ไม่มีลายเซ็นและควรได้รับการปฏิบัติอย่างเหมาะสม (เช่นถ้าคุณไม่เชื่อถือแหล่งที่มาอาจจะพิจารณาใหม่โดยใช้)

pkgutil --check-signature ~/Downloads/MysterySketchyInstaller-21.pkg
Package "MysterySketchyInstaller-21.pkg":
Status: no signature

หากไฟล์แพคเกจเป็นพิรุธคุณสามารถตรวจสอบลายเซ็นรหัสและแยกแพคเกจโดยไม่ต้องติดตั้งกับ pkgutil เพื่อให้การตรวจสอบต่อไปหรือถ้าคุณต้องการใช้ GUI แอปฯ อย่าง Pacifist จะนำเสนอเครื่องมือการจัดการแพคเกจที่คล้ายคลึงกันในแบบที่เป็นมิตร แม้ว่าจะยังอยู่ในขั้นสูงของสิ่งต่างๆก็ตาม

เช่นเดียวกับเครื่องมือบรรทัดคำสั่งที่ดีคุณสามารถแม้แต่จะให้ฟีดการ์ด pkgutil เพื่อตรวจสอบแพคเกจต่างๆได้พร้อมกันในตัวอย่างนี้เราจะตรวจสอบลายเซ็นของไฟล์ * .pkg ทุกตัวที่อยู่ภายใน ~ / Downloads:

pkgutil --check-signature ~/Downloads/*.pkg
Package "irssi-0.8.17-0.pkg":
Status: no signature

แพ็คเกจ "wget-4.8.22-0.pkg":
สถานะ: ไม่มีลายเซ็น

แพ็คเกจ "ComboUpdateOSXElCapitan.pkg":
สถานะ: ลงนามโดยใบรับรองที่หมดอายุแล้ว

แพคเกจ "InstallOSXSequoiaBeta.pkg":
สถานะ: ถูกต้อง

แพ็คเกจ "HRFDeveloperTools.pkg":
สถานะ: ถูกต้อง

Wildcards จะทำการตรวจสอบสถานะใบรับรองของไฟล์แพคเกจต่างๆได้อย่างรวดเร็วเพียงตรวจสอบว่าคุณระบุ * .pkg สำหรับการดำเนินการให้เสร็จสมบูรณ์โดยไม่ต้องหยุดไฟล์ที่ไม่ใช่แพคเกจที่รู้จัก