bg-tutorials

Cara Membuat CSR untuk Code Signing Certificate dengan OpenSSL

Panduan ini menjelaskan bagaimana Certificate Signing Request (CSR) dibuat untuk sertifikat code signing saat Anda bekerja dengan OpenSSL, dan, yang sama pentingnya, kapan pendekatan tersebut tidak lagi berlaku. Sejak 1 Juni 2023, aturan untuk kunci code signing berubah, sehingga alur kerja OpenSSL berbasis perangkat lunak saja tidak lagi diterima oleh Certificate Authority untuk sertifikat code signing yang dipercaya publik. Baca persyaratan di bawah ini terlebih dahulu, kemudian gunakan jalur yang sesuai dengan cara kunci Anda disimpan.

Penting: kunci code signing harus disimpan di perangkat keras

Berdasarkan CA/Browser Forum Code Signing Baseline Requirements, yang berlaku efektif mulai 1 Juni 2023, private key untuk setiap sertifikat code signing yang dipercaya publik, baik standar (OV) maupun Extended Validation (EV), harus dibuat dan disimpan dalam modul kripto perangkat keras yang memenuhi standar FIPS 140-2 Level 2, Common Criteria EAL4+, atau standar setara lainnya. Kunci tersebut harus tidak dapat diekspor. Code signing EV selalu mensyaratkan perangkat keras; aturan ini memperluas perlindungan yang sama ke sertifikat standar.

Konsekuensi praktisnya: private key dan CSR yang dibuat murni melalui perangkat lunak dengan OpenSSL biasa di laptop atau server tidak lagi diterima untuk menerbitkan sertifikat code signing yang dipercaya publik. Certificate Authority telah menghentikan dukungan untuk pembuatan kunci berbasis browser dan CSR berbasis perangkat lunak untuk produk-produk ini. Kunci Anda sekarang disimpan di salah satu tempat berikut:

  • Token perangkat keras yang dikirimkan kepada Anda (misalnya YubiKey atau SafeNet/Thales eToken). Dengan metode pengiriman token + pengiriman fisik, Certificate Authority membuat kunci di perangkat tersebut dan menangani CSR, sehingga Anda tidak membuatnya sendiri dengan OpenSSL.
  • Hardware Security Module (HSM) yang Anda kontrol sendiri, baik on-premises maupun berbasis cloud. Di sini Anda membuat kunci di dalam HSM dan menghasilkan CSR beserta atestasi kunci yang membuktikan bahwa kunci tersebut dibuat di perangkat keras.
  • Layanan cloud signing yang menyimpan kunci di HSM yang sesuai standar atas nama Anda.

Pilih jalur Anda berdasarkan bagaimana Anda berencana menerima dan menyimpan sertifikat. Untuk ringkasan, lihat panduan metode pengiriman code signing. Untuk langkah-langkah CSR dan atestasi berbasis perangkat keras, ikuti panduan yang sesuai dengan perangkat Anda:

Jika Anda menggunakan HSM yang berbeda, buat CSR dengan tooling dari vendor tersebut agar kunci tetap berada di perangkat keras. Perintah OpenSSL req yang ditampilkan nanti masih memiliki peran dalam alur kerja tersebut ketika OpenSSL mengendalikan HSM melalui provider atau engine, tetapi harus merujuk pada kunci yang sudah berada di dalam modul, bukan file kunci perangkat lunak biasa untuk sertifikat yang dipercaya publik.

Kapan metode OpenSSL berbasis perangkat lunak masih berlaku

Alur kerja perangkat lunak di bawah ini menghasilkan file kunci di disk. Hal ini hanya dapat diterima untuk kasus yang bukan sertifikat code signing yang dipercaya publik, seperti:

  • Signing internal atau uji coba dengan CA privat/enterprise, di mana kebijakan Anda sendiri, bukan aturan CA/Browser Forum publik, yang mengatur penyimpanan kunci.
  • Mempelajari struktur perintah OpenSSL sebelum Anda beralih ke token atau HSM.
  • Menyiapkan detail subjek dan sintaks perintah yang akan Anda gunakan kembali saat membuat CSR sesungguhnya terhadap kunci perangkat keras Anda.

Jangan mengirimkan kunci dan CSR yang dibuat melalui perangkat lunak ke Certificate Authority publik untuk sertifikat code signing OV atau EV. Permintaan tersebut akan ditolak. Dengan batasan ini yang sudah jelas, berikut adalah proses OpenSSL dan perintah-perintah yang terlibat.

1. Unduh dan pasang OpenSSL

Jika OpenSSL belum ada di komputer Anda, unduh versi terbaru (OpenSSL 3.x atau yang lebih baru) untuk sistem operasi Anda dan pasang. macOS dan sebagian besar distribusi Linux sudah dilengkapi OpenSSL secara bawaan; pada Windows Anda biasanya perlu memasang versi dari pihak ketiga. Pastikan pemasangan dan versinya dengan:

openssl version

2. Buka terminal dan muat OpenSSL

Di Windows, tekan tombol Windows + R, ketik cmd, lalu tekan Enter. Untuk perintah yang menulis file ke folder yang dilindungi, jalankan Command Prompt sebagai administrator: klik kanan ikon Command Prompt dan pilih Run as administrator. Anda juga dapat mengetik cmd di kotak pencarian taskbar dan membuka Command Prompt dari sana. Di macOS atau Linux, buka aplikasi terminal Anda.

Jika file biner OpenSSL tidak ada di path sistem Anda di Windows, pindah ke folder instalasinya terlebih dahulu, gunakan path mana pun yang sesuai dengan versi Anda:

cd OpenSSL-Win32bin
cd "Program FilesOpenSSL-Win64bin"

3. Buat private key dan CSR

Pertama, buat private key. Sertifikat code signing memerlukan kunci yang kuat: gunakan RSA 3072-bit (atau lebih besar), yang merupakan minimum umum untuk code signing, atau kunci ECDSA pada kurva P-256. Untuk membuat kunci RSA 3072-bit:

openssl genrsa -out code_signing_key.key 3072

Kemudian buat CSR dari kunci tersebut. OpenSSL menggunakan SHA-256 untuk tanda tangan permintaan secara default pada versi saat ini:

openssl req -new -key code_signing_key.key -out code_signing_csr.txt

4. Lengkapi kolom-kolom CSR

OpenSSL meminta detail yang mengidentifikasi pemegang sertifikat. Masukkan informasi yang akurat dan terkini sesuai dengan catatan organisasi resmi Anda, karena CA akan memvalidasinya. Ganti contoh berikut dengan detail Anda sendiri:

  • Country (C): kode negara dua huruf tempat perusahaan Anda terdaftar atau tempat Anda berdomisili, misalnya US.
  • State or Province (ST): nama lengkap negara bagian atau provinsi, misalnya California.
  • Locality (L): kota tempat perusahaan Anda terdaftar, misalnya San Jose.
  • Organization Name (O): nama resmi dan legal organisasi Anda, atau nama lengkap resmi Anda jika sertifikat untuk individu, misalnya GPI Holding LLC.
  • Organizational Unit (OU): departemen yang mengajukan sertifikat, misalnya IT. Kolom ini bersifat opsional.
  • Common Name (CN): nama legal organisasi Anda, atau nama lengkap Anda untuk sertifikat individu. Untuk code signing, Common Name adalah identitas yang muncul sebagai publisher.
  • Email Address: alamat email kontak yang valid.

Anda dapat mengosongkan kolom opsional challenge password dan kolom nama perusahaan opsional: cukup tekan Enter pada permintaan tersebut.

Anda juga dapat menggabungkan langkah 3 dan 4 menjadi satu perintah. Flag -subj menyediakan subjek secara langsung sehingga OpenSSL tidak menampilkan permintaan interaktif, dan -nodes membuat kunci tetap tidak terenkripsi di disk (OpenSSL 3.x mengganti nama flag ini menjadi -noenc, tetapi -nodes masih berfungsi). Perhatikan bahwa nilai tersebut menggunakan tanda kutip lurus, bukan tanda kutip melengkung, dan seluruh string diapit oleh sepasang tanda kutip:

openssl req -new -newkey rsa:3072 -nodes -keyout code_signing_key.key -out code_signing_csr.txt -subj "/C=US/ST=California/L=San Jose/O=GPI Holding LLC/OU=IT/CN=GPI Holding LLC"

5. Verifikasi CSR

Sebelum Anda mengirimkan apa pun, pastikan CSR valid dan detailnya benar. Perintah ini menampilkan subjek yang telah didekode dan memeriksa tanda tangan permintaan:

openssl req -noout -text -verify -in code_signing_csr.txt

Periksa bahwa baris Subject mencantumkan negara, organisasi, dan common name sesuai dengan yang Anda maksudkan, bahwa ukuran public key adalah 3072 bit atau lebih (atau kunci ECDSA), dan bahwa algoritma tanda tangannya adalah SHA-256. Anda juga akan melihat pesan verify OK, yang mengonfirmasi bahwa CSR ditandatangani oleh private key yang sesuai.

6. Pindahkan private key dan CSR ke direktori yang aman

Pindahkan private key dan CSR dari folder OpenSSL ke direktori yang Anda kontrol sendiri. Jaga kerahasiaan private key dan jangan pernah membagikannya kepada siapa pun di luar organisasi Anda: siapa pun yang memegangnya dapat menandatangani perangkat lunak atas nama Anda. Di Windows, buat folder dan pindahkan file-file tersebut ke dalamnya:

md c:codesigningcertificates
move code_signing_key.key c:codesigningcertificates
move code_signing_csr.txt c:codesigningcertificates

7. Kirim CSR ke CA Anda

Buka file CSR dengan editor teks biasa, seperti Notepad, dan salin seluruh isinya, termasuk baris —–BEGIN CERTIFICATE REQUEST—– dan —–END CERTIFICATE REQUEST—–, ke dalam formulir pendaftaran saat Anda memesan sertifikat. Blok CSR terlihat seperti ini:

-----BEGIN CERTIFICATE REQUEST-----
MIICvDCCAaQCAQAw...
...base64 encoded request...
-----END CERTIFICATE REQUEST-----

Ingat aturan dari awal panduan ini: untuk sertifikat code signing yang dipercaya publik, CSR yang Anda kirimkan harus sesuai dengan kunci yang dibuat dan disimpan di perangkat keras yang sesuai standar. Jika Anda membuat kunci perangkat lunak dengan langkah-langkah di atas, gunakan hanya untuk signing internal atau uji coba. Untuk pemesanan CA publik, buat CSR dari token atau HSM Anda menggunakan panduan YubiKey atau Luna HSM, atau biarkan CA membuat kunci saat Anda memilih metode pengiriman token + pengiriman fisik.

Untuk sintaks OpenSSL umum di luar pembuatan CSR, referensi perintah OpenSSL merupakan pendamping yang bermanfaat. Anda juga dapat menjelajahi lebih banyak tutorial OpenSSL dan tutorial code signing, atau membaca cara lain untuk membuat CSR.

Hemat 10% untuk Sertifikat SSL saat memesan hari ini!

Penerbitan cepat, enkripsi kuat, kepercayaan peramban 99,99%, dukungan khusus, dan jaminan uang kembali 25 hari. Kode kupon: SAVE10

Ditulis oleh

Penulis konten berpengalaman yang berspesialisasi dalam Sertifikat SSL. Mengubah topik keamanan siber yang rumit menjadi konten yang jelas dan menarik. Berkontribusi untuk meningkatkan keamanan digital melalui narasi yang berdampak.