bg-tutorials

Cara Membuat CSR di Windows

Panduan ini menunjukkan kepada Anda cara membuat CSR (Certificate Signing Request) di Windows menggunakan alat bawaan sistem operasi.

CSR adalah blok teks PKCS #10 yang membawa kunci publik dan detail subjek Anda ke Certificate Authority, yang kemudian menandatanganinya dan mengembalikan sertifikat SSL/TLS Anda. Private key yang sesuai tetap berada di mesin yang membuat permintaan tersebut.

Windows memberi Anda tiga cara bawaan untuk membuat CSR, dan masing-masing dibahas di bawah ini. Pilih yang sesuai dengan alur kerja Anda:

  • Certificates MMC snap-in (grafis), yang memandu Anda melalui wizard dan memungkinkan Anda menambahkan Subject Alternative Name. Ini adalah cara yang dibahas dalam tutorial asli, dan yang paling banyak diinginkan pengguna.
  • Alat baris perintah certreq.exe dengan file INF, yang dapat dijalankan melalui skrip, mendukung SAN, dan merupakan metode standar di Windows Server.
  • Biner OpenSSL untuk Windows (unduhan terpisah), yang menghasilkan CSR persis seperti yang dilakukan administrator Linux.

Jika Anda menjalankan web server dengan alur kerja CSR-nya sendiri, gunakan itu dan bukan langkah-langkah Windows umum ini: lihat panduan khusus untuk IIS dan Microsoft Exchange. Langkah-langkah di bawah ini mencakup Windows 10, Windows 11, dan Windows Server 2016 hingga 2025; masuklah dengan akun yang memiliki hak administrator lokal sebelum Anda mulai.

Membuat CSR dengan Certificates MMC snap-in

Microsoft Management Console (MMC) hadir dengan setiap versi Windows yang didukung dan menyediakan wizard Create Custom Request yang dapat membuat CSR dengan entri SAN. Wizard ini menyimpan private key baru di certificate store Local Computer, sehingga layanan Windows apa pun di mesin tersebut (IIS, ADFS, RD Gateway, RDP) dapat menggunakan sertifikat yang diterbitkan setelah dipasang.

Langkah 1: Buka MMC Certificates snap-in untuk Local Computer

Tekan Win + R, ketik perintah di bawah ini, lalu tekan Enter:

mmc

Di konsol MMC yang kosong, buka File > Add/Remove Snap-in. Pilih Certificates di daftar sebelah kiri, klik Add, pilih Computer account, klik Next, biarkan Local computer tetap terpilih, dan klik Finish, lalu OK. Certificates snap-in sekarang tertaut ke store Local Computer, yang merupakan sumber pembacaan bagi layanan-layanan Windows.

Langkah 2: Mulai permintaan sertifikat kustom

Di panel kiri, perluas Certificates (Local Computer) dan klik kanan pada Personal. Pilih All Tasks > Advanced Operations > Create Custom Request. Wizard Certificate Enrollment akan terbuka. Klik Next.

Pada layar Select Certificate Enrollment Policy, pilih Proceed without enrollment policy di bawah Custom Request dan klik Next. Ini memberi tahu Windows untuk membuat CSR mandiri bagi CA eksternal, bukan mendaftar terhadap template Active Directory Certificate Services internal.

Langkah 3: Pilih template dan format permintaan

Pada layar Custom request, atur Template ke (No template) CNG key, biarkan Request format pada PKCS #10, dan klik Next. CNG (Cryptography Next Generation) adalah penyedia kunci Windows modern dan merupakan pilihan yang tepat untuk permintaan baru; opsi CSP lama hanya diperlukan untuk kompatibilitas dengan aplikasi yang lebih tua.

Pada layar Certificate Information, perluas panah Details di samping entri permintaan dan klik Properties. Dialog Certificate Properties adalah tempat sisa CSR dikonfigurasi.

Langkah 4: Isi subject dan Subject Alternative Names

Pada tab General, ketik nama yang mudah dikenali dan deskripsi opsional agar Anda dapat mengidentifikasi permintaan yang tertunda nantinya di certificate store.

Beralih ke tab Subject. Pada Subject name, biarkan Type pada Full DN hanya jika Anda tahu apa yang Anda lakukan; untuk sebagian besar pesanan, tambahkan setiap komponen satu per satu menggunakan dropdown Type. Untuk setiap atribut di bawah ini, pilih tipenya, ketik nilainya, dan klik Add:

  • Common Name: nama domain lengkap yang memenuhi syarat (fully qualified domain name) yang ingin Anda amankan, misalnya www.yourdomain.com. Untuk sertifikat wildcard, letakkan tanda bintang di depan domain apex, misalnya *.yourdomain.com.
  • Country: kode negara ISO dua huruf, misalnya US, GB, atau DE.
  • State: nama negara bagian atau provinsi lengkap (misalnya California, bukan CA).
  • Locality: nama kota lengkap tempat organisasi Anda terdaftar (misalnya San Jose, bukan SJ).
  • Organization: nama resmi perusahaan Anda, persis seperti yang terdaftar. Diperlukan untuk sertifikat OV dan EV. Untuk sertifikat Domain Validation (DV), kolom ini diabaikan, sehingga nilai apa pun sebagai placeholder dapat digunakan.

Lewati atribut Email. RFC 5280 menyatakan bahwa sertifikat baru dengan alamat email harus menempatkannya di ekstensi Subject Alternative Name (sebagai rfc822Name), bukan di subject Distinguished Name, dan CA publik dapat menghapus nilai email dari subject sertifikat TLS. Membiarkannya kosong menjaga CSR tetap bersih.

Pada bagian Alternative name di tab yang sama, atur Type ke DNS dan tambahkan setiap hostname yang harus dicakup oleh sertifikat, satu klik Add per entri. Selalu cantumkan juga Common Name di sini: browser, .NET, Java, Go, dan klien TLS modern lainnya memvalidasi hostname secara ketat terhadap daftar SAN dan mengabaikan Common Name. Sertifikat web yang umum menggunakan dua entri DNS:

  • yourdomain.com
  • www.yourdomain.com

Untuk pesanan wildcard, tambahkan wildcard dan apex-nya: *.yourdomain.com dan yourdomain.com.

Langkah 5: Konfigurasikan kunci dan tanda tangan

Beralih ke tab Private Key dan perluas setiap bagian secara berurutan.

  • Cryptographic Service Provider: biarkan default RSA, Microsoft Software Key Storage Provider tetap terpilih. Ini adalah penyedia CNG modern untuk kunci RSA.
  • Key options: atur Key size ke 2048 (minimum yang berlaku saat ini untuk CA publik). Pilih 3072 atau 4096 hanya jika kebijakan Anda mengharuskan kunci yang lebih besar; trade-off-nya adalah handshake TLS yang sedikit lebih lambat. Centang Make private key exportable jika Anda ingin memiliki opsi untuk mencadangkan kunci atau memindahkan sertifikat yang diterbitkan ke server lain.
  • Select Hash Algorithm: pada bagian Select hash algorithm, pilih sha256. SHA-1 sudah tidak diterima lagi oleh CA publik dan SHA-256 adalah default modern. Biarkan kotak centang Use alternate signature format tidak dicentang.

Klik OK untuk menutup dialog properti, lalu klik Next pada wizard.

Langkah 6: Simpan file CSR

Pada layar Where do you want to save the offline request?, atur File format ke Base 64 (CA mengharapkan PEM berformat base64, bukan biner). Klik Browse, pilih folder yang mudah Anda temukan kembali (folder khusus C:certs atau Desktop lebih mudah daripada jalur default Windows), beri nama file dengan ekstensi .req atau .txt, dan klik Save. Klik Finish untuk menulis CSR.

Wizard menulis CSR ke file dan menyimpan private key yang sesuai di Certificates (Local Computer) > Certificate Enrollment Requests. Jangan hapus permintaan yang tertunda tersebut: ketika CA mengembalikan sertifikat yang diterbitkan, Windows akan memasangkannya secara otomatis dengan kunci yang sedang menunggu.

Langkah 7: Salin CSR dan kirimkan ke CA

Buka file yang telah disimpan di Notepad. Anda akan melihat blok yang terlihat seperti ini:

-----BEGIN NEW CERTIFICATE REQUEST-----
MIIDXjCCAkYCAQAwgZQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlh
... (many lines of base64) ...
-----END NEW CERTIFICATE REQUEST-----

Pilih seluruh blok, termasuk baris BEGIN NEW CERTIFICATE REQUEST dan END NEW CERTIFICATE REQUEST dengan lima tanda hubung, salin, dan tempelkan ke kolom CSR pada formulir pemesanan SSL Anda.

Membuat CSR dengan certreq.exe dan file INF

Utilitas baris perintah certreq.exe hadir dengan setiap versi Windows Server dan juga tersedia pada klien Windows 10 dan 11. Ini adalah metode yang tepat jika Anda ingin membuat skrip pembuatan CSR, mengatur parameter kunci yang tidak umum, atau membuat permintaan dari jarak jauh melalui sesi yang tidak bisa menjalankan MMC. Alurnya terdiri dari tiga bagian: menulis file INF permintaan, menjalankan certreq -new untuk membuat CSR, lalu mengirimkan CSR ke CA Anda.

Langkah 1: Buat file INF permintaan

Buka Notepad sebagai Administrator dan simpan file di bawah ini sebagai request.inf. Edit baris Subject dan entri DNS di bawah [Extensions] agar sesuai dengan domain Anda:

[Version]
Signature="$Windows NT$"

[NewRequest]
Subject = "CN=www.yourdomain.com, O=Your Company, L=San Jose, S=California, C=US"
KeySpec = 1
KeyLength = 2048
Exportable = TRUE
MachineKeySet = TRUE
SMIME = FALSE
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
ProviderType = 12
RequestType = PKCS10
KeyUsage = 0xa0
HashAlgorithm = SHA256

[EnhancedKeyUsageExtension]
OID = 1.3.6.1.5.5.7.3.1

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "dns=www.yourdomain.com&"
_continue_ = "dns=yourdomain.com"

Catatan mengenai nilai-nilai tersebut:

  • Subject: satu baris dengan komponen-komponen dipisahkan koma. Gunakan kode negara ISO dua huruf pada C=, dan tulis nama negara bagian serta kota secara lengkap.
  • KeyLength: minimum 2048. Atur 3072 atau 4096 jika kebijakan Anda mengharuskan kunci yang lebih besar.
  • Exportable = TRUE: memungkinkan Anda mengekspor private key bersama dengan sertifikat yang diterbitkan (untuk cadangan atau untuk dipasang di server kedua). Atur ke FALSE jika Anda ingin kunci terkunci hanya pada mesin ini.
  • MachineKeySet = TRUE: menyimpan kunci di store Local Computer, yang merupakan sumber pembacaan bagi layanan seperti IIS. Biarkan opsi ini aktif untuk beban kerja server.
  • HashAlgorithm = SHA256: menandatangani permintaan dengan SHA-256, default modern saat ini. Contoh yang lebih lama terkadang menggunakan default SHA-1, yang sudah tidak diterima lagi oleh CA publik.
  • 2.5.29.17: OID untuk Subject Alternative Name. Tambahkan satu baris _continue_ per hostname; setiap baris kecuali yang terakhir harus diakhiri dengan pemisah &. Cantumkan juga Common Name Anda di sini, karena klien TLS memvalidasi terhadap daftar SAN.

Langkah 2: Buat CSR

Buka Command Prompt atau PowerShell dengan hak akses elevated, pindah ke folder yang berisi request.inf, dan jalankan:

certreq -new request.inf request.csr

Alat ini membuat private key di store Local Computer dan menulis permintaan PKCS #10 ke request.csr. Buka file tersebut, salin seluruh blok mulai dari BEGIN NEW CERTIFICATE REQUEST hingga END NEW CERTIFICATE REQUEST, dan tempelkan ke formulir pemesanan Anda.

Ketika CA mengembalikan sertifikat yang diterbitkan, selesaikan pemasangannya dengan:

certreq -accept certnew.cer

Ini menautkan sertifikat yang diterbitkan dengan private key yang telah menunggu di store, setelah itu sertifikat tersedia bagi layanan Windows apa pun yang membutuhkannya.

Membuat CSR di Windows dengan OpenSSL

Windows tidak menyertakan OpenSSL secara bawaan, tetapi versi Windows yang dikelola tersedia dari Shining Light Productions. Alur OpenSSL identik dengan yang ada di Linux dan menghasilkan kunci serta CSR sebagai dua file terpisah, yang berguna jika Anda berencana men-deploy sertifikat ke platform yang tidak menggunakan certificate store Windows (misalnya reverse proxy pihak ketiga, Tomcat, atau aplikasi kustom).

Pasang paket Win64 OpenSSL Light (installer biasa sudah cukup untuk pekerjaan CSR) dan, saat proses pengaturan menanyakan, salin DLL OpenSSL ke direktori bin OpenSSL, bukan ke folder sistem Windows. Buka Command Prompt atau PowerShell dan pastikan OpenSSL ada di path:

openssl version

Jika perintah tidak ditemukan, tambahkan folder instalasi (biasanya C:Program FilesOpenSSL-Win64bin) ke PATH Anda atau panggil openssl dengan path lengkapnya. Kemudian buat CSR dan kunci dengan satu perintah:

openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr -subj "/C=US/ST=California/L=San Jose/O=Your Company/CN=www.yourdomain.com" -addext "subjectAltName=DNS:yourdomain.com,DNS:www.yourdomain.com"

Fungsi masing-masing flag:

  • -newkey rsa:2048 membuat kunci RSA 2048-bit baru. Gunakan rsa:4096 untuk kunci yang lebih besar jika kebijakan Anda mengharuskannya.
  • -nodes menulis private key tanpa passphrase sehingga layanan yang menggunakannya dapat membacanya saat startup tanpa diminta. OpenSSL 3.x mengganti nama flag ini menjadi -noenc; -nodes masih berfungsi tetapi dianggap usang.
  • -keyout dan -out menamai file kunci dan file CSR.
  • -subj menyediakan subject secara inline sehingga OpenSSL tidak berhenti untuk menanyakan pertanyaan interaktif.
  • -addext “subjectAltName=…” menambahkan daftar SAN. Sertakan juga Common Name di sini.

OpenSSL 3.x menandatangani CSR dengan SHA-256 secara default, sehingga tidak diperlukan flag digest tambahan. Perhatikan header yang berbeda: OpenSSL menulis -----BEGIN CERTIFICATE REQUEST-----, sementara wizard MMC dan certreq menulis -----BEGIN NEW CERTIFICATE REQUEST-----. Keduanya adalah permintaan PKCS #10 biasa dan setiap CA menerima kedua bentuk tersebut. Perlakukan yourdomain.key yang dihasilkan sebagai rahasia: siapa pun yang memilikinya dapat menyamar sebagai sertifikat tersebut.

Verifikasi CSR sebelum Anda mengirimkannya

Pastikan Common Name, entri SAN, ukuran kunci, dan algoritma tanda tangan sebelum mengirimkan permintaan ke CA Anda. Dari baris perintah Windows, certutil dapat membaca file CSR apa pun:

certutil -dump request.csr

Jika Anda telah memasang OpenSSL, perintah yang setara akan menampilkan detail yang sama:

openssl req -noout -text -in request.csr

Lebih suka menggunakan browser? Tempelkan isi permintaan ke dalam CSR decoder milik SSL Dragon untuk membaca kembali subject, daftar SAN, ukuran kunci, dan algoritma tanda tangan. Pastikan Common Name sesuai dengan hostname yang akan digunakan klien, bahwa setiap nama yang diperlukan muncul di daftar SAN, dan bahwa algoritma tanda tangan adalah sha256WithRSAEncryption (atau yang lebih kuat).

Jika Anda lebih suka membuat CSR di luar server, CSR Generator kami membuat permintaan (dengan SAN) dari satu formulir saja. Trade-off-nya adalah private key dibuat di browser Anda, bukan di store Windows, sehingga saat CA menerbitkan sertifikat, Anda menggabungkan sertifikat dan kunci tersebut menjadi satu file .pfx dan mengimpornya melalui konsol manajemen sertifikat aplikasi Anda.

Pertanyaan yang Sering Diajukan

Metode CSR Windows mana yang harus saya gunakan?

Jika Anda mengamankan layanan Windows yang membaca dari certificate store Local Computer (IIS, ADFS, RDP, RD Gateway, WinRM), gunakan MMC snap-in atau certreq.exe: keduanya membuat kunci di tempat yang tepat sehingga sertifikat yang diterbitkan siap untuk dipasangkan. Jika Anda menyiapkan CSR untuk platform non-Windows, atau Anda menginginkan file kunci terpisah yang dapat disalin ke server Linux atau perangkat pihak ketiga, gunakan OpenSSL di Windows. Hasil dari ketiga metode ini adalah CSR PKCS #10 yang sama, yang diterima oleh semua CA publik.

Haruskah saya menyertakan alamat email saya dalam subject CSR?

Tidak. RFC 5280 mengarahkan sertifikat baru untuk menempatkan alamat email di ekstensi Subject Alternative Name sebagai rfc822Name, bukan di subject Distinguished Name. CA publik dapat menghapus nilai email dari subject sertifikat TLS selama penerbitan, sehingga menambahkannya tidak memiliki tujuan apa pun untuk HTTPS. Jangan sertakan kolom Email di wizard atau di file INF.

Di mana letak private key setelah saya membuat CSR di Windows?

Dengan MMC snap-in atau certreq.exe, kunci tersebut berada di Certificates (Local Computer) > Certificate Enrollment Requests sebagai permintaan yang tertunda dan dipasangkan secara otomatis dengan sertifikat yang diterbitkan ketika Anda menyelesaikan proses pendaftaran. Dengan OpenSSL, kunci tersebut adalah file .key yang ditulis di sebelah CSR; lindungi file ini seperti rahasia lainnya dan cadangkan sebelum Anda men-deploy sertifikat.

Bisakah saya membuat CSR langsung dengan PowerShell, tanpa file INF?

PowerShell tidak memiliki cmdlet CSR resmi. New-SelfSignedCertificate membuat pasangan kunci, tetapi menghasilkan sertifikat self-signed yang sudah selesai, bukan CSR yang dapat ditandatangani oleh CA publik. Cara yang didukung untuk membuat permintaan dari PowerShell adalah menulis file INF seperti yang ditunjukkan di atas dan memanggil certreq.exe untuk itu (certreq -new request.inf request.csr). Modul pihak ketiga seperti PSPKI membungkus certreq dengan antarmuka yang lebih ramah, tetapi alat dasarnya tetap certreq.

Apa yang terjadi jika saya membatalkan wizard atau tidak pernah mengirimkan permintaan?

Permintaan yang tertunda beserta private key-nya tetap berada di Certificates (Local Computer) > Certificate Enrollment Requests. Mereka tidak melakukan apa pun dengan sendirinya dan tidak merusak apa pun, tetapi akan menumpuk seiring waktu. Buka MMC Certificates snap-in, tinjau permintaan yang tertunda, dan hapus yang sudah tidak Anda perlukan; ini juga akan menghapus kunci yang sesuai.

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.