CSR Decoder

Tempel certificate signing request dan baca setiap kolom di dalamnya: subjek, kunci, setiap nama alternatif, dan setiap ekstensi. Halaman ini juga mengecek CSR terhadap aturan yang diterapkan CA publik, dan memberi tahu apakah kunci privat Anda cocok dengannya. Sertifikat SSL juga bisa didekode di sini.

Didekode di browser Anda dengan Web Crypto · tidak ada yang diunggah, tidak ada yang disimpan · CA/Browser Forum Baseline Requirements v2.3.1

Semuanya terjadi di browser Anda. Buka panel jaringan dan lihat sendiri: tidak ada permintaan yang membawa data Anda.

Apa itu CSR?

Certificate signing request (CSR) adalah file kecil bertanda tangan yang meminta sertifikat dari otoritas sertifikat. Isinya kunci publik Anda, nama yang Anda inginkan pada sertifikat, dan tanda tangan yang dibuat dengan kunci privat Anda.

Formatnya PKCS#10, tertulis di RFC 2986. Bagian yang ditandatangani hanya berisi empat hal: nomor versi, nama subjek, SubjectPublicKeyInfo yang memuat kunci publik Anda, dan sekumpulan atribut. Semuanya lalu ditandatangani oleh kunci privat yang berpasangan dengan kunci publik di dalamnya, jadi CSR itu self-signed. Tanda tangan itu adalah bukti kepemilikan: siapa pun bisa membaca kunci publik Anda, tetapi hanya pemegang kunci privat yang bisa menandatangani permintaan yang terverifikasi terhadapnya.

Kunci privat Anda tidak ada di dalam file dan tidak boleh ada. CSR aman dikirim lewat email, ditempel di formulir web CA, dan didekode di sini — itulah sebabnya halaman ini bisa melakukan semua pekerjaannya di browser Anda tanpa mengirim apa pun ke mana pun.

Satu CSR, byte demi byteRFC 2986 · PKCS#10

Seluruh file

  • Pembungkus4 byte
  • Bagian yang ditandatangani469 byte
  • Algoritma tanda tangan yang mana15 byte
  • Tanda tangannya sendiri261 byte

Di dalam bagian yang ditandatangani

  1. Versi3 byteSelalu nol: satu-satunya versi yang didefinisikan formatnya
  2. Nama subjek108 byteDistinguished name yang Anda ketik di formulir
  3. Kunci publik Anda294 byteAlgoritma, ukuran, dan kuncinya — satu-satunya kolom yang pasti dipakai otoritas sertifikat
  4. Atribut60 byteTempat nama alternatif yang Anda minta dibawa

Kunci privat Andamenandatangani bagian di atasBukti bahwa Anda memegang kunci privat yang berpasangan · Tanda tangan hanya mencakup bagian itu, bukan seluruh file

CSR contoh yang ditawarkan halaman ini, sebesar 749 byte. Empat hal masuk ke bagian yang ditandatangani; kunci privat yang berpasangan dengan kunci publik di dalamnya menandatangani persis bagian itu, dan hasilnya adalah 261 byte terakhir.
Hasil CSR decoder: certificate signing request yang didekode beserta subjek, kunci, nama alternatif, dan temuan aturan CAHasil CSR decoder: certificate signing request yang didekode beserta subjek, kunci, nama alternatif, dan temuan aturan CATempel atau lepasCSR, sertifikat, atau kunci publik — PEM, base64, hex dump, atau file. Beberapa sekaligus tidak masalah.KesimpulanApa yang dilakukan CA publik terhadap CSR ini: menerbitkan, mengubah, atau menolaknya, beserta alasan masing-masing.Nama-namaSetiap nama yang akan dicakup sertifikat, dengan Common Name dicek terhadapnya.Kunci dan tanda tanganAlgoritma, ukuran, kurva, dan eksponen, serta apakah tanda tangan permintaan itu sendiri sah.Pencocokan kunciTambahkan kunci privat atau sertifikat yang diterbitkan untuk melihat apakah keduanya milik CSR ini. Tidak satu pun keluar dari browser Anda.
Sebuah CSR dibongkar: kesimpulannya, nama yang diminta, kunci di baliknya, dan tempat untuk mencocokkan kunci Anda sendiri. Pilih sebuah nomor untuk melihat arti setiap bagian.

Cara mengecek CSR sebelum dikirim

Ada tiga hal yang perlu dicek: namanya sesuai yang Anda maksud, tanda tangannya terverifikasi, dan tidak ada yang melanggar aturan yang diterapkan CA Anda.

Tempel CSR di atas. Halaman ini membaca subjek atribut demi atribut, mendaftar setiap Subject Alternative Name (SAN), menampilkan algoritma dan ukuran kunci, lalu mengecek tanda tangan permintaan itu sendiri. CSR yang tanda tangannya tidak terverifikasi telah diedit, terpotong, atau rusak sejak dibuat — buat ulang, jangan dikirim.

Setelah itu giliran aturan. Otoritas sertifikat menerapkan Baseline Requirements dari CA/Browser Forum, dan CSR yang melanggar salah satunya ditolak atau diam-diam diubah. Temuan di halaman ini ditandai harus diperbaiki bila CA tidak bisa menerbitkan apa yang Anda minta, akan diubah bila CA akan menerbitkan tetapi membuang atau mengubah sebuah kolom, dan perlu diketahui bila tidak ada yang salah tetapi ada yang layak dilihat.

Tiga pengecekan, sesuai urutan jalannyaCA/Browser Forum TLS BR 2.3.1
  1. Nama-namaSetiap nama yang akan dicakup sertifikat, dan apakah Common Name termasuk di antaranya
  2. Tanda tanganDiverifikasi dengan kriptografi bawaan browser Anda sendiri
  3. Aturan otoritas sertifikatDiterapkan satu per satu, masing-masing dengan dokumen asalnya
  • KirimTidak ada di CSR yang melanggar aturan
  • Akan ditolakFilenya sehat; yang diminta tidak diizinkan
  • Buat ulangTanda tangan yang tidak terverifikasi berarti file diedit, terpotong, atau tersalin dengan buruk setelah dibuat
Dua pengecekan pertama menyangkut file itu sendiri dan yang ketiga menyangkut apa yang diizinkan otoritas sertifikat. CSR bisa lolos keduanya yang pertama dan tetap ditolak.

Apa isi CSR — dan apa yang sebenarnya dipakai CA Anda

Dari semua isi CSR, CA publik pasti memakai satu kolom: kunci publik. Sebagian besar sisanya divalidasi sendiri, ditimpa, atau dilarang untuk disalin.

DigiCert menyatakannya terus terang di dokumentasinya sendiri: “DigiCert uses the public key embedded in the CSR to create your client certificate. All other fields in the CSR are ignored.” Pada sertifikat OV atau EV, CA harus memvalidasi sendiri organisasi, lokasi, dan negara sebelum dicantumkan; yang Anda ketik tidak diterima begitu saja. Tanggal berlaku tidak pernah diambil dari CSR: tanggal itu mengikuti jadwal Baseline Requirements.

Dua kolom subjek bukan sekadar diabaikan, tetapi dilarang. organizationalUnitName (OU) tidak boleh ada di sertifikat TLS publik — berdasarkan ballot SC047 CA/Browser Forum, tidak ada sertifikat yang diterbitkan sejak 1 September 2022 yang boleh memuatnya — dan emailAddress sama sekali tidak diizinkan di sertifikat domain-validated. Common Name boleh ada tetapi tidak dianjurkan, dan jika ada, harus mengulang persis salah satu Subject Alternative Name. Aturan terakhir itulah sebabnya halaman ini menandai Common Name yang tidak ada di daftar SAN.

Apa yang dilakukan otoritas sertifikat pada setiap kolomCA/Browser Forum TLS BR 2.3.1
Di CSR AndaNasibnyaAlasannya
Kunci publikSubjectPublicKeyInfoDipakai seperti yang Anda kirimSatu-satunya hal yang pasti diambil otoritas sertifikat dari Anda
Nama alternatifsubjectAltName2.5.29.17Dipakai seperti yang Anda kirimCA memastikan Anda mengendalikan setiap nama sebelum menuliskan satu pun
Common NameCN2.5.4.3Divalidasi, lalu ditulis oleh CATidak dianjurkan; jika ada, harus mengulang persis salah satu nama alternatif
Organisasi, lokasi, provinsiO, L, ST2.5.4.10Divalidasi, lalu ditulis oleh CAPada sertifikat organization-validated, ini berasal dari catatan tervalidasi milik CA, bukan dari yang Anda ketik
NegaraC2.5.4.6Divalidasi, lalu ditulis oleh CABoleh ada, apa pun tingkat validasinya
Organizational unitOU2.5.4.11Sama sekali tidak diizinkanDilarang di sertifikat publik sejak 1 September 2022
Alamat emailemailAddress1.2.840.113549.1.9.1Sama sekali tidak diizinkanTidak diizinkan di sertifikat domain-validated
Berlaku dari, berlaku sampainotBefore, notAfterTidak pernah berasal dari CSRDitetapkan oleh jadwal yang diikuti otoritas sertifikat, tidak pernah oleh CSR Anda

“DigiCert uses the public key embedded in the CSR to create your client certificate. All other fields in the CSR are ignored.”

DigiCert, dokumentasinya sendiri
Kolom-kolom yang membuat orang pusing, dan nilai sebenarnya masing-masing. Kunci dan nama Anda bertahan; organizational unit sama sekali tidak boleh muncul, begitu pula alamat email pada sertifikat domain-validated, apa pun yang Anda ketik; dan tanggalnya tidak pernah Anda yang menetapkan.

Mengapa CA menolak CSR

Hampir setiap penolakan berpangkal pada nama yang tidak boleh disertifikasi CA, wildcard yang terlalu luas, alamat IP yang dicadangkan, kunci yang terlalu kecil, hash tanda tangan yang terlalu tua, atau CSR yang tanda tangannya tidak terverifikasi.

Otoritas sertifikat tidak boleh menerbitkan untuk nama internal — nama yang “does not end with a Top-Level Domain registered in IANA's Root Zone Database”. Itu mencakup server.local, intranet, nama satu label tanpa titik sama sekali, dan akhiran karangan apa pun. Label harus berupa huruf, angka, dan tanda hubung, jadi garis bawah di nama host ditolak, dan nama tidak boleh ditulis dengan titik di akhir. Wildcard hanya boleh menggantikan seluruh label paling kiri, dan tidak pernah sebuah public suffix: *.example.com boleh, *.co.uk tidak. Alamat IP boleh ada, tetapi bukan yang dicadangkan — tidak boleh 10.0.0.0/8, 192.168.0.0/16, 127.0.0.1, atau fc00::/7.

Untuk kunci, Baseline Requirements tegas: modulus RSA minimal 2048 bit dan habis dibagi 8, atau sebuah titik di P-256, P-384, atau P-521, dan “no other algorithms or key sizes are permitted”. CA juga wajib menolak kunci yang bisa difaktorkannya, termasuk kunci “which can be factored within 100 rounds using Fermat's factorization method” — halaman ini menjalankan uji itu pada kunci di CSR Anda. Dan meskipun hash tanda tangan CSR bukan hash tanda tangan sertifikat, Let's Encrypt berhenti menerima tanda tangan sendiri SHA-1 pada 2022, jadi perangkat lama yang masih menandatangani dengan SHA-1 akan ditolak permintaannya.

Nama yang tidak akan disertifikasi otoritas sertifikatCA/Browser Forum TLS BR 2.3.1
  • server.local
    Nama internalTidak berakhir dengan top-level domain yang ada di root zone publik, jadi tidak ada yang bisa membuktikan nama itu milik Anda
    Ditolak
  • intranet
    Satu labelNama tanpa titik sama sekali masuk definisi yang sama
    Ditolak
  • my_host.example.com
    Garis bawahLabel boleh berisi huruf, angka, dan tanda hubung, tidak ada yang lain
    Ditolak
  • *.co.uk
    Wildcard di atas seluruh registryWildcard boleh menggantikan label paling kiri, tidak pernah sebuah public suffix
    Ditolak
  • 192.168.1.10
    Alamat yang dicadangkanAlamat publik bisa disertifikasi; alamat dari rentang privat atau berkegunaan khusus tidak akan pernah bisa
    Ditolak
  • example.com.
    Titik di akhirLabel root yang kosong tidak boleh ditulis
    Ditolak
Enam nama, masing-masing melanggar aturan yang berbeda — dan semuanya penolakan yang bisa Anda lihat sebelum mengirim CSR.

Bagaimana saya tahu kunci privat saya cocok dengan CSR?

File kunci privat sudah membawa kunci publiknya sendiri, jadi pencocokannya adalah perbandingan dua kunci publik — tidak perlu rahasia dan tidak ada yang harus dikirim ke mana pun.

Buka Cocokkan kunci atau sertifikat di atas dan tambahkan kunci di samping CSR. Halaman ini hanya membaca separuh publik dari file — kunci PKCS#8, PKCS#1, dan SEC1 semuanya dipahami — membandingkannya dengan kunci di CSR, lalu menjawab. Tidak ada yang diunggah, tidak ada yang disimpan, dan kunci dihapus saat Anda meninggalkan kolomnya. Pengecekan yang sama berlaku antara CSR dan sertifikat yang dikembalikan CA, sehingga “the certificate and the private key do not match” terdeteksi sebelum server menolak berjalan.

Jika Anda tidak mau menempel kunci di halaman web mana pun, jawaban yang sama hanya dua perintah di komputer Anda sendiri. openssl req -in request.csr -pubkey -noout mencetak kunci publik dari CSR dan openssl pkey -in private.key -pubout mencetaknya dari kunci: keluaran yang identik berarti cocok. Bentuk -modulus yang lebih lama hanya berfungsi untuk kunci RSA; -pubkey berfungsi untuk semua jenis kunci.

Dua file, satu perbandinganRFC 2986 · OpenSSL manual
Browser Anda
  • File kunci privatFile yang tidak boleh Anda kirim ke mana punSeparuh publiknya dibaca keluar
  • CSRFile yang Anda kirim ke otoritas sertifikatSudah membawa kunci publik

Apakah ini kunci yang sama?

  • CocokSertifikat yang dikembalikan akan bisa dipasang dengan kunci ini
  • Tidak cocokInilah ketidakcocokan yang dilaporkan server web saat menolak berjalan

Tidak ada yang melewati garis ini · Perbandingan berfungsi dengan jaringan dimatikanDi tempat lain

Atau lakukan di komputer Anda sendiriopenssl req -in request.csr -pubkey -nooutopenssl pkey -in private.key -puboutKeluaran yang identik berarti cocok
File kunci privat sudah membawa kunci publiknya sendiri, jadi pertanyaannya terjawab dengan membandingkan dua kunci publik. Tidak ada rahasia yang harus berpindah untuk itu, dan memang tidak ada.

CSR, sertifikat, kunci privat: apa bedanya?

Kunci privat adalah rahasianya. CSR adalah permintaan yang membuktikan Anda memegangnya. Sertifikat adalah jawaban bertanda tangan dari CA, dan satu-satunya dari ketiganya yang memang bersifat publik.

Ketiga file ini sering berada di folder yang sama dengan nama yang membingungkan karena mirip. Kunci privat diawali -----BEGIN PRIVATE KEY----- atau -----BEGIN RSA PRIVATE KEY----- dan tidak boleh dikirim ke siapa pun, termasuk otoritas sertifikat. Certificate signing request diawali -----BEGIN CERTIFICATE REQUEST-----, ditandatangani oleh kunci itu, dan aman dikirim. Sertifikat diawali -----BEGIN CERTIFICATE-----, ditandatangani oleh CA, dan toh dikirim ke setiap pengunjung situs Anda.

Setelah sertifikat terbit, CSR tidak berguna lagi: tidak dibutuhkan untuk memasang, memperpanjang, atau mencabut apa pun. Kuncilah yang harus Anda simpan, dan simpan dengan aman. Tempel salah satu dari ketiganya di atas dan halaman ini akan memberi tahu yang mana.

Tiga file, satu folder, nama yang membingungkan karena miripRFC 7468
  • Kunci privatRahasia

    Baris pertamanya-----BEGIN PRIVATE KEY-----Juga banyak dipakai-----BEGIN RSA PRIVATE KEY-----

    Ditandatangani oleh
    Tidak ada — dialah yang menandatangani
    Siapa yang boleh melihat
    Anda, dan tidak ada orang lain
    Kegunaannya
    Membuktikan bahwa server ini adalah yang dituju sertifikat saat diterbitkan
  • Certificate signing requestPublik

    Baris pertamanya-----BEGIN CERTIFICATE REQUEST-----Juga banyak dipakai-----BEGIN NEW CERTIFICATE REQUEST-----

    Ditandatangani oleh
    Dirinya sendiri, dengan kunci privat
    Siapa yang boleh melihat
    Anda dan otoritas sertifikat
    Kegunaannya
    Meminta sertifikat, dan membuktikan Anda memegang kunci yang dimaksud
  • SertifikatPublik

    Baris pertamanya-----BEGIN CERTIFICATE-----

    Ditandatangani oleh
    Otoritas sertifikat
    Siapa yang boleh melihat
    Setiap pengunjung situs Anda
    Kegunaannya
    Memberi tahu browser bahwa kunci ini milik nama-nama ini

.csr.pem.req.txtTidak ada standar yang menetapkan ekstensi file untuk CSR; semua ini dipakai, dan halaman ini membaca isinya, bukan namanya

Hanya yang pertama dari ketiganya yang rahasia. Yang terakhir toh dibagikan ke setiap pengunjung, dan yang di tengah tidak berguna lagi begitu sertifikat tiba.

Amankah mendekode CSR secara online?

CSR tidak berisi rahasia, jadi mendekodenya di mana pun tidak berbahaya. Kunci privat lain soal, dan itulah file yang sering tertukar dengannya.

Semua yang ada di halaman ini berjalan di browser Anda. CSR diurai oleh kode yang diunduh bersama halaman, tanda tangan dicek dengan Web Crypto milik browser Anda sendiri, dan tidak ada permintaan ke server mana pun yang membawa data Anda — Anda bisa melihat panel jaringan selama memakainya. Itu sifat dari cara halaman ini dibuat, bukan janji yang kami minta Anda percayai begitu saja.

Alasan hal ini penting adalah file di sebelah CSR. Definisi dari CA/Browser Forum sendiri tidak kenal ampun: “A Private Key is said to be compromised if its value has been disclosed to an unauthorized person, or an unauthorized person has had access to it.” Tidak perlu penyalahgunaan — sampai ke server orang lain saja sudah cukup. Pada 2020 DigiCert menemukan 337 kunci privat yang ditempel pelanggan bersama CSR mereka dan mencabut setiap sertifikat yang terlibat, dengan menulis bahwa “by sending the private key to DigiCert along with the CSR, the customer has compromised the private key”. Jika halaman ini pernah membaca kunci privat yang Anda tempel, halaman ini akan mengatakannya, menolak mendekodenya, dan tidak menyimpan apa pun.

Ke mana file itu sebenarnya pergiCA/Browser Forum TLS BR 2.3.1

Halaman ini

Browser Anda
  1. File dibaca
  2. Diurai oleh kode yang datang bersama halaman
  3. Tanda tangan dicek oleh browser itu sendiri
  4. Hasilnya digambar

Tidak ada permintaan yang keluar membawa data AndaBuka panel jaringan dan lihat selama Anda memakainya

Halaman yang mengunggahnya

Browser Anda

File diunggah…bersama apa pun yang tertempel di sebelahnya

Server milik orang lain

Kunci privat yang sampai di sana sudah terkompromi hanya karena itu

“A Private Key is said to be compromised if its value has been disclosed to an unauthorized person, or an unauthorized person has had access to it.”

definisi yang ditulis otoritas sertifikat untuk diri mereka sendiri

Ini sudah pernah terjadiPada 2020 satu otoritas sertifikat menemukan 337 kunci privat yang ditempel di sebelah CSRSetiap sertifikat yang terlibat dicabut

Tidak ada yang rahasia di CSR, jadi mendekodenya di mana pun tidak berbahaya. File yang sering tertukar dengannya lain soal, dan kerusakannya tidak butuh penyalahgunaan sama sekali — terlihat saja sudah cukup.

RSA atau ECDSA: kunci mana yang sebaiknya diminta CSR?

Kunci ECDSA P-256 sekuat kunci RSA 3072 bit dan jauh lebih kecil, jadi itu pilihan default yang lebih baik. RSA 2048 tetap diterima di mana-mana.

NIST menempatkan P-256 dan RSA-3072 pada kekuatan keamanan 128 bit yang sama, dan tabelnya sama sekali tidak punya baris untuk RSA-4096: baris berikutnya adalah RSA-7680, pada 192 bit, tingkat yang dicapai P-384. Jadi kunci RSA 4096 bit membebani setiap pengunjung dengan kerja handshake ekstra tanpa keuntungan terdokumentasi dibanding 3072. Baseline Requirements mengizinkan P-521 juga, tetapi Let's Encrypt menolaknya, jadi CSR P-521 bisa sah sepenuhnya namun tetap gagal di CA yang hendak Anda pakai.

Ed25519 bukan pilihan untuk sertifikat TLS publik saat ini, sebagus apa pun algoritmanya: Baseline Requirements mendaftar RSA dan tiga kurva NIST lalu menambahkan “no other algorithms or key sizes are permitted”. Kunci pasca-kuantum pun bukan — ballot yang akan mengizinkan ML-DSA di TLS publik ditutup tanpa digabungkan pada Oktober 2026. Ed25519 dan ML-DSA tetap berguna untuk SSH, penandatanganan, dan CA privat, dan halaman ini membaca CSR yang memakainya.

Kekuatan yang sama, dengan dua ukuran yang sangat berbedaNIST SP 800-57 Part 1 Rev 5, Table 2
KekuatanKunci RSAKurva
keamanan 112 bit2.048 bitCA publik mana punTidak ada kurva yang diizinkan otoritas sertifikat publik pada kekuatan ini
keamanan 128 bit3.072 bitCA publik mana punP-256CA publik mana pun
4.096 bitCA publik mana pun4.096 bit sama sekali tidak ada di tabel
keamanan 192 bit7.680 bitCA publik mana punP-384CA publik mana pun
keamanan 256 bit15.360 bitCA publik mana punP-521CA publik mana pun
  • Kunci RSA
  • Kurva
  • Langkahnya langsung dari satu ukuran ke ukuran berikutnya dan melewatkan yang populer di antaranya, jadi kerja handshake ekstra yang dibebankannya ke setiap pengunjung tidak membeli apa pun yang pernah dituliskan siapa pun
  • Diterima olehLet's Encrypt

Kurva membawa kekuatan yang sama dalam sebagian kecil byte

Perbandingan yang dipublikasikan, dengan dua hal yang menentukan apakah Anda benar-benar bisa memakai sebuah kunci: apa yang diizinkan aturan, dan apa yang diizinkan otoritas sertifikat yang hendak Anda pakai.

Cara membuat CSR di platform apa pun

Satu perintah OpenSSL mencakup Linux, macOS, dan Windows yang punya OpenSSL. IIS punya certreq, macOS punya Keychain Access, dan situs ini punya generator yang tidak pernah mengirim kunci Anda ke mana pun.

Dengan OpenSSL, openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr -subj "/CN=example.com" -addext "subjectAltName=DNS:example.com,DNS:www.example.com" membuat kunci dan CSR dalam satu langkah. (-nodes membiarkan kunci tidak terenkripsi. OpenSSL 3 juga menulisnya -noenc, tetapi LibreSSL bawaan macOS hanya mengenal -nodes.) Lalu openssl req -in example.com.csr -text -verify -noout menampilkan dan memverifikasinya. Di Windows, certreq -new request.inf request.req membaca file .inf yang nama alternatifnya ditaruh di bawah OID 2.5.29.17 dengan baris _continue_ — tidak ada kunci SAN=. Halaman referensi Microsoft sendiri memperingatkan bahwa contohnya memakai SHA-1, yang kini ditolak CA, jadi atur hash-nya sendiri.

Di Mac, Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority membuatnya, dengan ukuran kunci di balik kotak “Let me specify key pair information”. Atau pakai CSR generator kami, yang membuat kunci dengan Web Crypto browser Anda dan memberi Anda kedua file tanpa menyentuh server. Tidak ada standar yang menetapkan ekstensi file untuk CSR: .csr, .pem, .req, dan .txt semuanya dipakai, dan halaman ini membaca isinya, bukan memercayai namanya.

Empat cara membuatnyaOpenSSL · Microsoft Learn · Apple Support
  1. OpenSSLLinux, macOS, Windows

    Membuat kunci dan CSR dalam satu perintahopenssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr -subj "/CN=example.com" -addext "subjectAltName=DNS:example.com,DNS:www.example.com"Lalu baca kembali dan verifikasi tanda tangannya sendiriopenssl req -in example.com.csr -text -verify -noout
  2. certreqWindows Server dan IIS

    Membaca file teks biasa; nama alternatif ditaruh di bagian ekstensi, satu baris untuk tiap namacertreq -new request.inf request.req[Extensions] 2.5.29.17 = "{text}" _continue_ = "DNS=example.com&" _continue_ = "DNS=www.example.com"Halaman contoh Microsoft sendiri masih ditulis dengan hash yang kini ditolak otoritas sertifikat, jadi atur hash-nya sendiri
  3. Keychain AccessmacOS

    Keychain Access › Certificate Assistant › Request a Certificate From a Certificate AuthorityMac Anda menamai menu-menu ini dalam bahasanya sendiriJenis dan ukuran kunci tersembunyi di balik kotak yang memungkinkan Anda menentukan pasangan kunciKunci RSA dari 2048 sampai 4096 bit; yang lebih kecil tidak lagi ditawarkan
  4. DNS RobotBrowser mana pun

    Membuat kunci dengan kriptografi bawaan browser Anda dan memberi Anda kedua file tanpa satu pun menyentuh serverBuka generator
Satu perintah OpenSSL berfungsi di Linux, macOS, dan Windows sekaligus. Tiga cara lainnya untuk mesin yang tidak punya perintah itu.

Berapa lama sertifikat akan berlaku?

Sertifikat TLS publik yang diterbitkan hari ini tidak boleh melebihi 200 hari. Itu turun menjadi 100 hari pada Maret 2027 dan 47 hari pada Maret 2029.

Jadwalnya berasal dari ballot CA/Browser Forum SC-081v3, disetujui pada April 2025, dan CSR tidak bisa memengaruhinya: masa berlaku tidak pernah datang dari permintaan. Setiap tahap punya dua angka, SHOULD NOT satu hari di bawah MUST NOT — 199 dan 200 hari sekarang, 99 dan 100 mulai 2027-03-15, 46 dan 47 mulai 2029-03-15. Untuk penghitungannya, “a day is measured as 86,400 seconds”, dan sebagian dari hari berikutnya dihitung sebagai satu hari penuh.

Konsekuensi praktisnya, perpanjangan harus otomatis. Jika Anda masih membuat CSR dengan tangan setiap tahun, sekaranglah saatnya pindah ke ACME, tempat klien yang membuat permintaan untuk Anda — dan di sana, kebetulan, PKCS#10 memang diwajibkan, meskipun Baseline Requirements sendiri hanya meminta “a certificate request in a form prescribed by the CA”.

Berapa lama sertifikat boleh berlakuCA/Browser Forum TLS BR 2.3.1 §6.3.2
  1. sebelum 15 Maret 2026Posisi hari ini397 hari398 hari
  2. mulai 15 Maret 2026199 hari200 hari
  3. mulai 15 Maret 202799 hari100 hari
  4. mulai 15 Maret 202946 hari47 hari
  • Seluruh jadwal berasal dari satu ballot, SC-081v3, disetujui 11 April 2025
  • Satu hari dihitung tepat 86.400 detik dan sebagian dari hari berikutnya dihitung sebagai satu hari penuh
  • Tidak ada di CSR yang mengubah semua ini
Empat tahap, masing-masing dengan dua angka: yang tidak dianjurkan aturan dan yang dilarangnya. Tanggalnya sudah tetap, dan itulah yang membuat perpanjangan otomatis menjadi satu-satunya jawaban yang masuk akal.

Yang ditunjukkan ASN.1 mentah

Di bawah base64, CSR adalah pohon berenkode DER. Decoder menggambarnya dengan offset byte dan menamai setiap object identifier yang dikenalnya, sama seperti yang dicetak openssl asn1parse.

Ini cara yang jujur untuk menampilkan kolom yang tidak punya nama ramah. Buka Struktur mentah pada item yang didekode mana pun dan Anda bisa melihat CertificationRequestInfo, relative distinguished name subjek satu per satu, SubjectPublicKeyInfo, kumpulan attributes [0] dan, di dalamnya, atribut extensionRequest — object identifier 1.2.840.113549.1.9.14, didefinisikan bukan di RFC 2986 melainkan di RFC 2985 §5.4.2 — yang membawa ekstensi X.509 dari RFC 5280.

Atribut lain yang mungkin Anda temui di sana adalah challengePassword (1.2.840.113549.1.9.7). Atribut ini dimaksudkan sebagai rahasia bersama untuk mencabut sertifikat nanti, masih dipakai pendaftaran SCEP, dan tidak berperan dalam pemesanan sertifikat web biasa. Halaman ini menampilkannya bila ada, karena kolom yang tidak bisa Anda lihat adalah kolom yang tidak bisa Anda periksa.

CSR yang sama, sebagai byteRFC 2986 · RFC 2985 · RFC 5280
Di byteStrukturUkuran
0SEQUENCE749 byte
4SEQUENCE469 byte
8INTEGER03 byte
11SEQUENCE108 byte
13SET13 byte
15SEQUENCE11 byte
17OBJECT IDENTIFIERC2.5.4.65 byte
22PrintableStringUS4 byte
26SET21 byte
28SEQUENCE19 byte
30OBJECT IDENTIFIERST2.5.4.85 byte
35UTF8StringCalifornia12 byte
47SET24 byte
49SEQUENCE22 byte
51OBJECT IDENTIFIERL2.5.4.75 byte
56UTF8StringSan Francisco15 byte
71SET22 byte
73SEQUENCE20 byte
75OBJECT IDENTIFIERO2.5.4.105 byte
80UTF8StringExample Inc13 byte
93SET26 byte
95SEQUENCE24 byte
97OBJECT IDENTIFIERCN2.5.4.35 byte
102UTF8Stringwww.example.com17 byte
119SEQUENCE294 byte
123SEQUENCE15 byte
125OBJECT IDENTIFIERrsaEncryption1.2.840.113549.1.1.111 byte
136NULL2 byte
138BIT STRING2.160 bit30 82 01 0a 02 82 01 01 00 c5 47 47 1d 26 1c bf275 byte
413[0]60 byte
415SEQUENCE58 byte
417OBJECT IDENTIFIERextensionRequest1.2.840.113549.1.9.1411 byte
428SET45 byte
430SEQUENCE43 byte
432SEQUENCE41 byte
434OBJECT IDENTIFIERSubject Alternative Name2.5.29.175 byte
439OCTET STRING32 byte30 1e 82 0f 77 77 77 2e 65 78 61 6d 70 6c 65 2e34 byte
473SEQUENCE15 byte
475OBJECT IDENTIFIERsha256WithRSAEncryption1.2.840.113549.1.1.1111 byte
486NULL2 byte
488BIT STRING2.048 bit00 57 41 c5 09 98 14 78 8c ee c3 61 d4 c0 e0 2d261 byte
  • Berisi hal lain
  • Berisi nilai
  • Dinamai menurut posisinya
  • Atribut yang membawa ekstensi

    1.2.840.113549.1.9.14Atribut ini didefinisikan di dokumen yang berbeda dari yang mendefinisikan CSR itu sendiri, itulah sebabnya nama alternatif dibawa di dalam atribut dan tidak diletakkan di samping subjek
  • Atribut lain yang mungkin Anda temuiTidak ada di CSR ini

    1.2.840.113549.1.9.7Rahasia bersama, dimaksudkan untuk meminta pencabutan sertifikat nanti, dan masih dipakai saat perangkat mendaftarkan dirinya sendiri ke jaringan
Setiap byte CSR contoh, dengan setiap object identifier diberi nama. Ini yang dicetak decoder baris perintah, digambar dan bukan dicetak, sehingga Anda bisa melihat di mana satu kolom berakhir dan yang berikutnya dimulai.

CSR decoder: tanya jawab

Bagaimana cara mendekode CSR?

Tempel seluruh CSR ke kotak di atas, termasuk baris -----BEGIN CERTIFICATE REQUEST----- dan -----END CERTIFICATE REQUEST-----, atau lepas file di halaman. CSR langsung didekode saat Anda menempel: subjek, kunci publik, setiap Subject Alternative Name, setiap ekstensi yang diminta, dan sidik jari. Anda juga bisa menempel isi base64 saja, hex dump, atau mengunggah file DER biner.

Amankah memakai CSR decoder ini?

Ya, karena dua alasan. Certificate signing request tidak berisi rahasia — memang dimaksudkan untuk dikirim ke otoritas sertifikat — jadi mendekodenya di mana pun tidak berbahaya. Dan halaman ini bekerja di browser Anda: CSR diurai oleh kode yang diunduh bersama halaman dan tidak ada yang dikirim ke server mana pun. Jika Anda tidak sengaja menempel kunci privat, halaman ini memberi tahu Anda, menolak mendekodenya, dan tidak menyimpan apa pun.

Bagaimana cara mengecek apakah CSR saya valid?

Dekode di sini dan baca kesimpulannya. Halaman ini mengecek tanda tangan CSR itu sendiri, yang membuktikan pengirim memegang kunci privat yang berpasangan, lalu menerapkan aturan yang diterapkan otoritas sertifikat publik: nama yang tidak boleh disertifikasi, wildcard yang terlalu luas, alamat IP yang dicadangkan, kunci yang terlalu kecil atau bisa difaktorkan, kolom subjek yang usang, dan hash tanda tangan yang kedaluwarsa. Setiap temuan menyebut apakah CA akan menolaknya (harus diperbaiki), mengubahnya (akan diubah), atau hanya mencatatnya (perlu diketahui).

Mengapa otoritas sertifikat saya menolak CSR saya?

Penyebab umumnya adalah nama internal seperti server.local atau nama host satu label, garis bawah di nama host, wildcard di atas public suffix seperti *.co.uk, alamat IP privat di nama alternatif, kunci RSA di bawah 2048 bit, atau CSR yang masih ditandatangani dengan SHA-1. Dekode CSR di atas dan masing-masing disebut dengan jelas, beserta aturan yang dilanggar.

Bagaimana saya tahu kunci privat saya cocok dengan CSR?

Pakai Cocokkan kunci atau sertifikat di atas: tambahkan kunci di samping CSR dan halaman ini membandingkan kunci publik di dalam file kunci dengan yang ada di CSR, di browser Anda. Atau jalankan sendiri — openssl req -in request.csr -pubkey -noout dan openssl pkey -in private.key -pubout mencetak kunci publik yang sama bila cocok. Perbandingan yang sama berlaku antara kunci dan sertifikat yang sudah terbit.

Apakah ini bisa mendekode sertifikat SSL juga?

Ya. Tempel sertifikat dan sertifikat itu didekode sebagai sertifikat: penerbit dan subjek, nomor seri, tanggal berlaku, setiap nama alternatif, key usage dan extended key usage, authority dan subject key identifier, URL OCSP dan CA Issuers, kebijakan sertifikat, serta stempel waktu certificate transparency yang tertanam. Tempel sertifikat dan CSR-nya bersamaan dan halaman ini juga memberi tahu apakah keduanya memakai kunci yang sama.

Kolom apa dari CSR saya yang sebenarnya dipakai otoritas sertifikat?

Pasti hanya satu: kunci publik. Dokumentasi DigiCert sendiri menyebut sisanya diabaikan. Pada sertifikat OV atau EV, CA harus memvalidasi sendiri organisasi dan negara sebelum dicantumkan; tanggal berlaku selalu datang dari jadwal Baseline Requirements, tidak pernah dari CSR. Dua kolom bukan sekadar diabaikan tetapi dilarang di sertifikat TLS publik: OU dan, pada sertifikat domain-validated, emailAddress.

Apakah Common Name masih penting?

Hanya sebagai salinan dari hal lain. Browser sudah mengabaikan Common Name untuk pencocokan host sejak 2017 dan hanya memakai Subject Alternative Name. Baseline Requirements menandai Common Name NOT RECOMMENDED dan mensyaratkan bahwa, jika ada, “MUST contain exactly one entry that is one of the values contained in the Certificate's subjectAltName extension”. Common Name yang tidak ada di antara nama alternatif Anda adalah alasan penolakan, dan halaman ini menandainya.

Bisakah saya mendekode beberapa file sekaligus?

Bisa. Tempel CSR, sertifikatnya, dan intermediate-nya bersamaan dan setiap blok didekode di kartunya sendiri, sesuai urutan tempel. Satu blok yang rusak tidak menghentikan yang lain. Jika ada kunci privat di dalam tempelan, kunci itu disebut dan dilewati, tidak pernah didekode. Hingga empat puluh blok didekode dan sisanya dihitung dan dilaporkan, bukan dibuang diam-diam.

Apa itu challenge password di CSR?

Atribut opsional dari RFC 2985, awalnya rahasia bersama yang Anda sebutkan saat meminta sertifikat dicabut. Atribut ini masih berperan dalam pendaftaran SCEP, tempat perangkat membuktikan dirinya boleh meminta. Tidak berperan dalam pemesanan sertifikat web biasa, dan karena kolom ini jarang ditampilkan perangkat lain, halaman ini menampilkannya setiap kali CSR membawanya.

Bisakah saya memakai kunci Ed25519 untuk sertifikat publik?

Belum saat ini. Baseline Requirements mengizinkan RSA dan kurva P-256, P-384, dan P-521 lalu menyatakan bahwa “no other algorithms or key sizes are permitted”, jadi tidak ada otoritas sertifikat publik yang akan menerbitkan untuk CSR Ed25519. Kunci ini bagus untuk SSH, penandatanganan, dan CA privat, dan decoder ini membaca CSR Ed25519 dan Ed448, serta kunci pasca-kuantum ML-DSA, tanpa keluhan.

Berapa lama sertifikat berlaku sekarang?

Sertifikat TLS publik yang diterbitkan hari ini tidak boleh melebihi 200 hari, turun dari 398 sebelum 2026-03-15. Turun menjadi 100 hari pada 2027-03-15 dan 47 hari pada 2029-03-15, berdasarkan ballot CA/Browser Forum SC-081v3. Tidak ada di CSR yang memengaruhi ini; masa berlaku ditetapkan oleh CA. Pada panjang segini, perpanjangan harus diotomatiskan, yang dalam praktiknya berarti ACME.

Ada yang kurang?Usulkan fitur atau alat baru