Salah satu mitra bisnis kami meminta kami untuk menggunakan sertifikat TLS SHA256 untuk terhubung ke API mereka. Saya tidak yakin bagaimana cara menghasilkan permintaan ini. Saya telah menggunakan openssl di masa lalu untuk membuat permintaan ini tetapi itu menghasilkan sertifikat SSL menggunakan SHa1. Bisakah saya menggunakan openssl untuk menghasilkan permintaan ini? Jika tidak, bagaimana saya menghasilkan apa yang mereka minta?
Saya bukan ahli dalam bidang ini sehingga saya bahkan tidak tahu apakah apa yang saya minta masuk akal.
Jawaban:
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:Bagaimana cara memeriksa tipe hash dari CSR
Dan ini adalah bagaimana Anda mengetahui tipe hash dari CSR Anda:
Baik. Ini menggunakan SHA256 seperti yang kita inginkan.
sumber
Jika Anda menggunakan OpenSSL, Anda cukup menambahkan
-sha256
opsi baris perintah, yang akan menghasilkan CSR dengan algoritma tanda tangan SHA-256.sumber