bg-tutorials

Cara Membuat CSR di Webmin

Tutorial ini menunjukkan kepada Anda cara membuat CSR (Certificate Signing Request) di Webmin. Webmin adalah panel kontrol berbasis browser untuk server Linux, sehingga Anda memiliki dua cara praktis untuk membuat CSR: melalui modul SSL bawaan Webmin (formulir grafis untuk panel Webmin itu sendiri atau untuk virtual host Apache) atau dengan baris perintah OpenSSL melalui terminal bawaan Webmin. Cara OpenSSL adalah yang paling fleksibel dan menghasilkan kunci serta CSR yang bisa Anda gunakan dengan server web apa pun (Apache, Nginx, Lighttpd, atau apa pun yang dikelola Webmin).

Langkah-langkah di bawah ini mengasumsikan Webmin 2.x versi terbaru dan OpenSSL 3.x, yang merupakan versi terkini di setiap distribusi Linux yang didukung pada tahun 2026 (Ubuntu 22.04 / 24.04 / 26.04, Debian 12 dan 13, RHEL 9 dan 10, Rocky 9 dan 10, AlmaLinux 9 dan 10, openSUSE Leap 15.6 dan Tumbleweed). Hasilnya adalah CSR standar berformat PEM yang ditandatangani dengan SHA-256, yang diterima oleh Certificate Authority publik mana pun.

Langkah 1: Masuk ke Webmin

Buka Webmin di browser pada URL server Anda melalui port 10000:

https://yourwebsite.com:10000

Ganti yourwebsite.com dengan hostname atau alamat IP server Anda. Port 10000 adalah port default Webmin. Masuk dengan akun root atau pengguna Webmin yang memiliki izin untuk mengelola SSL.

Langkah 2: Buka terminal Webmin

Webmin 2.x dilengkapi dengan terminal bawaan yang bisa Anda gunakan tanpa membuka sesi SSH terpisah. Di panel sebelah kiri, tepat di bawah tautan Refresh Modules, klik ikon Terminal (ikon kedua dari kiri), atau tekan Alt + K untuk membukanya. Sebuah prompt shell akan muncul, berjalan sebagai pengguna yang Anda gunakan untuk masuk.

Jika Anda lebih memilih koneksi SSH langsung dari komputer Anda sendiri, sambungkan ke server yang sama dan jalankan perintah pada langkah berikutnya di sana. Hasilnya akan identik.

Langkah 3: Membuat kunci privat dan CSR dengan OpenSSL

Di terminal, jalankan perintah di bawah ini. Perintah ini membuat kunci RSA 2048-bit dan CSR yang sesuai dalam satu langkah, dengan subjek dan Subject Alternative Names (SAN) yang disertakan langsung sehingga OpenSSL tidak perlu berhenti untuk mengajukan pertanyaan interaktif:

sudo openssl req -new -newkey rsa:2048 -noenc 
-keyout /etc/ssl/private/yourwebsite.com.key 
-out /etc/ssl/private/yourwebsite.com.csr 
-subj "/C=US/ST=California/L=San Jose/O=Your Company LLC/CN=yourwebsite.com" 
-addext "subjectAltName=DNS:yourwebsite.com,DNS:www.yourwebsite.com"

Di Debian dan Ubuntu, direktori /etc/ssl/private/ sudah ada. Di RHEL, Rocky, AlmaLinux, dan Fedora, konvensinya adalah /etc/pki/tls/private/ untuk kunci dan /etc/pki/tls/certs/ untuk CSR. Pilih jalur yang bisa dibaca oleh server web Anda, atau simpan berkas di direktori home Anda dan pindahkan nanti. Jika direktori tujuan belum ada, buat terlebih dahulu dengan sudo mkdir -p /etc/ssl/private.

Berikut fungsi setiap bagian dari perintah tersebut:

  • -newkey rsa:2048 menghasilkan kunci RSA 2048-bit baru. 2048-bit adalah standar minimum saat ini untuk sertifikat publik. Gunakan rsa:4096 untuk kunci yang lebih besar, atau beralih ke ECDSA (lihat di bawah).
  • -noenc membiarkan kunci privat tidak terenkripsi sehingga server web dapat membacanya saat startup tanpa perlu memasukkan passphrase. (Pada OpenSSL 1.x, flag yang setara adalah -nodes; keduanya masih berfungsi di OpenSSL 3.x.)
  • -keyout dan -out menentukan nama berkas kunci privat dan berkas CSR.
  • -subj menyediakan subjek sertifikat secara langsung. Ganti nilai contoh dengan detail asli Anda:
    • C: kode negara dua huruf tempat organisasi Anda terdaftar secara hukum (misalnya, US).
    • ST: nama lengkap negara bagian atau provinsi (misalnya, California), tanpa singkatan.
    • L: nama lengkap kota (misalnya, San Jose).
    • O: nama organisasi resmi. Untuk sertifikat Domain Validation (DV), boleh dikosongkan atau diisi dengan domain Anda.
    • CN: Fully Qualified Domain Name (FQDN) dari situs yang ingin Anda amankan (misalnya, yourwebsite.com).
  • -addext “subjectAltName=…” mencantumkan setiap hostname yang harus dicakup oleh sertifikat. CA publik melakukan validasi berdasarkan daftar SAN, jadi sertakan juga Common Name di sini. Untuk wildcard, sertakan baik wildcard maupun domain utamanya: DNS:*.yourwebsite.com,DNS:yourwebsite.com. Wildcard hanya mencakup satu tingkat subdomain dan tidak secara otomatis mencakup domain utama.

Jika Anda lebih memilih kunci ECDSA (lebih kecil dan lebih cepat, dengan dukungan P-256 yang luas), gunakan varian berikut:

sudo openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -noenc 
-keyout /etc/ssl/private/yourwebsite.com.key 
-out /etc/ssl/private/yourwebsite.com.csr 
-subj "/C=US/ST=California/L=San Jose/O=Your Company LLC/CN=yourwebsite.com" 
-addext "subjectAltName=DNS:yourwebsite.com,DNS:www.yourwebsite.com"

Tanda garis miring terbalik (backslash) di akhir setiap baris adalah tanda kelanjutan baris pada shell, sehingga perintah tetap menjadi satu instruksi logis yang dipisah menjadi beberapa baris agar lebih mudah dibaca. Jika terminal Anda tidak menangani format multi-baris dengan baik, tempelkan seluruh perintah dalam satu baris saja.

Langkah 4: Lindungi kunci privat

Tampilkan isi direktori untuk memastikan kedua berkas telah dibuat:

sudo ls -l /etc/ssl/private/yourwebsite.com.*

Anda akan melihat dua berkas baru:

  • yourwebsite.com.key: kunci privat. Berkas ini harus tetap berada di server, tidak boleh dikirim ke Certificate Authority, dan tidak boleh dikirim lewat email atau ditempelkan ke formulir apa pun. Siapa pun yang memegang kunci ini dapat menyamar sebagai situs Anda.
  • yourwebsite.com.csr: Certificate Signing Request. Ini adalah satu-satunya berkas yang Anda kirimkan ke penyedia SSL.

Batasi izin akses pada kunci privat agar hanya root yang bisa membacanya:

sudo chmod 600 /etc/ssl/private/yourwebsite.com.key

Pada distribusi dengan SELinux yang diaktifkan (RHEL, Rocky, AlmaLinux, Fedora), terapkan kembali konteks SELinux yang benar setelah memindahkan kunci ke lokasi akhirnya, misalnya sudo restorecon -Rv /etc/pki/tls/.

Langkah 5: Verifikasi CSR (opsional tetapi disarankan)

Sebelum Anda mengirimkan CSR, pastikan berkas tersebut berisi subjek dan SAN yang benar serta tanda tangannya valid:

openssl req -noout -text -verify -in /etc/ssl/private/yourwebsite.com.csr

Periksa apakah baris Subject sesuai dengan detail Anda, apakah X509v3 Subject Alternative Name mencantumkan setiap hostname yang Anda harapkan, dan apakah pemeriksaan tanda tangan menampilkan verify OK. Algoritma tanda tangan seharusnya tertulis sha256WithRSAEncryption (atau ecdsa-with-SHA256 untuk kunci ECDSA). Jika Anda lebih memilih untuk tidak menggunakan baris perintah, tempelkan teks CSR ke CSR decoder online kami untuk membaca kolom yang sama di browser.

Langkah 6: Salin dan kirim CSR

Tampilkan CSR agar Anda dapat menyalinnya:

sudo cat /etc/ssl/private/yourwebsite.com.csr

Anda akan melihat blok teks seperti ini:

-----BEGIN CERTIFICATE REQUEST-----
MIIBozCB... (a long string of characters)
-----END CERTIFICATE REQUEST-----

Salin seluruh blok tersebut, termasuk baris —–BEGIN CERTIFICATE REQUEST—– dan —–END CERTIFICATE REQUEST—– (setiap penanda memiliki lima tanda hubung di kedua sisinya). Tempelkan ke formulir pemesanan saat Anda membeli sertifikat SSL, dan biarkan kunci privat yang sesuai tetap berada di server.

Membuat CSR melalui modul grafis Webmin

Jika Anda lebih memilih untuk menghindari baris perintah, Webmin menyediakan dua formulir grafis yang membuatkan CSR untuk Anda. Pilih yang sesuai dengan tujuan sertifikat tersebut.

Untuk virtual host Apache (situs web Anda)

  • Buka Servers > Apache Webserver.
  • Buka tab Global Configuration, klik Configure Apache Modules, centang modul ssl, lalu klik Enable Selected Modules jika belum aktif.
  • Pada tab Existing virtual hosts, buka virtual host port 443 (atau buat baru) dengan mengklik ikon globe-nya.
  • Di halaman Virtual Server Options, pilih SSL Options, lalu klik Create signing request.
  • Isi formulir (negara, negara bagian, kota, organisasi, common name, email, ukuran kunci 2048 atau lebih tinggi, dan Subject Alternative Names yang diperlukan), pilih lokasi tempat Webmin harus menyimpan berkas .csr dan .key, lalu klik Create Now.

Kedua berkas tersebut akan muncul di jalur yang Anda tentukan. Gunakan berkas .csr untuk pesanan Anda dan simpan berkas .key di server.

Untuk panel Webmin itu sendiri (port 10000)

Jika Anda hanya memerlukan sertifikat untuk antarmuka login Webmin, bukan untuk situs web, buat CSR dari modul konfigurasi Webmin:

  • Buka Webmin > Webmin Configuration > SSL Encryption.
  • Buka tab Create Signing Request.
  • Isi nama host (nama publik yang digunakan untuk mengakses Webmin), negara, negara bagian, kota, organisasi, email, dan ukuran kunci, lalu klik Create.

Webmin akan menyimpan permintaan dan kunci yang sesuai di bawah /etc/webmin/. Setelah CA mengembalikan sertifikat yang diterbitkan, instal sertifikat tersebut dari halaman SSL Encryption yang sama sehingga menggantikan berkas default /etc/webmin/miniserv.pem.

Setelah Anda menerima sertifikat

Setelah Certificate Authority memvalidasi CSR Anda dan menerbitkan sertifikat, instal sertifikat tersebut di server. Langkah pastinya tergantung pada layanan mana sertifikat itu digunakan:

Jika Anda lebih memilih alur kerja yang sepenuhnya grafis dan berjalan di browser, Anda juga dapat membuat CSR dengan CSR Generator online kami. Alat ini menghasilkan kunci privat di browser Anda, jadi simpan kunci tersebut sendiri dan pindahkan ke server sebelum Anda menyelesaikan instalasi.

Pertanyaan yang Sering Diajukan

Di mana Webmin menyimpan CSR dan kunci privat?

Di mana pun Anda tentukan. Dengan perintah OpenSSL, berkas ditulis ke jalur yang Anda berikan melalui -keyout dan -out. Dengan formulir Create signing request pada modul Apache, Anda memilih jalur output di dalam formulir itu sendiri. Dengan Webmin > Webmin Configuration > SSL Encryption, Webmin menulisnya di bawah /etc/webmin/. Di Debian dan Ubuntu, lokasi konvensional untuk kunci adalah /etc/ssl/private/; di RHEL, Rocky, AlmaLinux, dan Fedora adalah /etc/pki/tls/private/.

Apakah saya harus menggunakan terminal Webmin, atau bisa masuk lewat SSH?

Keduanya bisa digunakan. Terminal bawaan Webmin (ikon di panel kiri, atau Alt + K) praktis karena Anda sudah masuk, tetapi perintah OpenSSL yang sama yang dijalankan melalui sesi SSH biasa akan menghasilkan CSR dan kunci yang identik. Gunakan mana pun yang lebih mudah bagi Anda.

Apa perbedaan antara -noenc dan -nodes?

Keduanya melakukan hal yang sama: memberi tahu OpenSSL untuk membiarkan kunci privat tidak terenkripsi di disk sehingga server web dapat membacanya saat startup tanpa perlu memasukkan passphrase. -nodes adalah nama lama dan masih berfungsi di OpenSSL 3.x. -noenc adalah alias baru yang diperkenalkan di OpenSSL 3.0 dan menjadi penulisan yang lebih disarankan ke depannya. Gunakan mana pun yang menjadi kebiasaan Anda.

Apakah CSR dari Webmin sama dengan CSR dari alat lain?

Ya. CSR adalah permintaan standar berformat PEM yang didefinisikan oleh PKCS #10, dan CA mana pun dapat menandatanganinya terlepas dari di mana ia dibuat. CSR yang Anda buat di terminal Webmin, melalui formulir Create signing request pada modul Apache, atau dengan CSR Generator online kami, semuanya menghasilkan jenis berkas yang sama. Yang penting adalah kunci privat yang dibuat pada saat bersamaan tetap berada di server tempat Anda berencana menginstal sertifikat tersebut.

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.