CSR hash dan cert hash tidak terkait
Jenis hash pada permintaan dan pada sertifikat yang sebenarnya tidak terkait satu sama lain.
CA memeriksa tanda tangan pada CSR. Dengan begitu, CA dapat memverifikasi bahwa CSR tidak berubah dalam perjalanan. Itu semua tanda tangan pada CSR.
Tidak ada cara in-band resmi (atau bahkan semi-resmi) untuk memberi tahu CA hash yang Anda inginkan. Sebagai gantinya perusahaan CA dapat menjalankan beberapa CA, salah satunya secara eksklusif menggunakan SHA256. Dan jika Anda menginginkan SHA256, maka Anda mengirimkan CSR Anda di situs web SHA256 khusus itu saja. (Dan tidak di situs web SHA1-CA mereka.)
Apa yang sering diteorikan adalah sesuatu seperti ini: "Jika saya mengirimkan CSR yang ditandatangani dengan SHA1, maka sertifikat saya akan ditandatangani dengan SHA1." Ini biasanya tidak dilakukan. ( Satu-satunya CA yang saya tahu yang pernah melakukan ini selama beberapa waktu adalah Gandi.net .)
Bagaimana cara menandatangani CSR dengan SHA256
Karena itu, gunakan -sha256
parameter untuk menandatangani CSR Anda dengan SHA256 seperti:
openssl req -baru -newkey rsa: 2048 -nodes -sha256 -keluar dari www.example.com.sha256.csr -kunci keluar www.example.com.key -subj "/ C = US / ST = ExampleState / L = ExampleLocation / O = ExampleOrganisation / CN = www.example.com "
Bagaimana cara memeriksa tipe hash dari CSR
Dan ini adalah bagaimana Anda mengetahui tipe hash dari CSR Anda:
$ openssl req -in www.example.com.sha256.csr -noout -text | grep Signature
Signature Algorithm: sha256WithRSAEncryption
Baik. Ini menggunakan SHA256 seperti yang kita inginkan.