แฮช CSR และใบรับรองแฮไม่เกี่ยวข้อง
ประเภทแฮชในคำขอและใบรับรองจริงไม่เกี่ยวข้องกัน
CA ตรวจสอบลายเซ็นบน CSR ด้วยวิธีนี้ CA สามารถตรวจสอบว่า CSR ไม่ได้ถูกเปลี่ยนไปในระหว่างทาง นั่นคือลายเซ็นทั้งหมดของ CSR
ไม่มีทางเป็นทางการ (หรือกึ่งทางการ) ในการบอก CA ว่าคุณต้องการแฮช บริษัท CA อาจใช้ CA หลาย ๆ อันแทนหนึ่งในนั้นใช้ SHA256 โดยเฉพาะ และถ้าคุณต้องการ SHA256 คุณต้องส่ง CSR ของคุณบนเว็บไซต์ของ SHA256-only-CA อันใดอันหนึ่งเท่านั้น (และไม่ได้อยู่ในเว็บไซต์ของ SHA1-CA)
สิ่งที่ถูกทฤษฏีบ่อยครั้งคือสิ่งที่เป็นเช่นนี้: "ถ้าฉันส่ง CSR ที่ลงชื่อกับ SHA1 แล้วใบรับรองของฉันจะถูกลงนามกับ SHA1" มักจะไม่ทำเช่นนี้ ( CA เดียวที่ฉันรู้ว่าเคยทำสิ่งนี้มาระยะหนึ่งคือ Gandi.net )
วิธีลงชื่อ CSR ด้วย SHA256
ดังที่กล่าวไว้ใช้-sha256
พารามิเตอร์เพื่อลงนาม CSR ของคุณกับ SHA256 ดังนี้:
openssl req -new -newkey rsa: 2048 -nodes -sha256 -out www.example.com.sha256.csr -keyout www.example.com.key -subj "/ C = US / ST = ExampleState / L = ตัวอย่างตำแหน่ง / O = ExampleOrganisation / CN = www.example.com"
วิธีตรวจสอบประเภทแฮชของ CSR
และนี่คือวิธีที่คุณค้นหาประเภทแฮชของ CSR ของคุณ:
$ openssl req -in www.example.com.sha256.csr -noout -text | grep Signature
Signature Algorithm: sha256WithRSAEncryption
ดี. มันใช้ SHA256 เหมือนที่เราต้องการ