Cara membuat permintaan sertifikat TLS SHA256

10

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.


sumber
Akan sangat menyenangkan bagi saya jika Anda salah satu dari 12 orang yang harus saya beri tahu hari ini untuk kembali dengan CSR SHA256, bukan SHA1.
Hyppy
@Hyppy Saya harap Anda masih merasa lucu di akhir tahun :)
Maarten Bodewes

Jawaban:

12

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 -sha256parameter 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.

StackzOfZtuff
sumber
5

Jika Anda menggunakan OpenSSL, Anda cukup menambahkan -sha256opsi baris perintah, yang akan menghasilkan CSR dengan algoritma tanda tangan SHA-256.

Hipn
sumber