Artikel ini menjelaskan cara membuat Sertifikat SSL self-signed menggunakan tool openssl.

Apa itu self-signed SSL certificate?

Self-signed SSL certificate (Bahasa Indonesia Sertifikat SSL yang ditandatangani sendiri) adalah sertifikat yang hanya ditandatangani oleh orang yang membuatnya, bukan otoritas sertifikat tepercaya. Sertifikat yang ditandatangani sendiri dapat memiliki tingkat enkripsi yang sama dengan sertifikat SSL yang ditandatangani CA.

Sertifikat yang ditandatangani sendiri diakui sebagai sah oleh browser apa pun, namun tidak dapat di verifikasi. Jika Anda menggunakan sertifikat yang ditandatangani sendiri, web browser akan menampilkan peringatan kepada pengunjung bahwa sertifikat situs web tidak dapat diverifikasi.

Sertifikat yang ditandatangani sendiri sebagian besar digunakan untuk tujuan pengujian atau penggunaan internal. Anda tidak boleh menggunakan sertifikat yang ditandatangani sendiri dalam sistem produksi yang sudah siap online ke Internet.

Prasyarat

Toolkit openssl diperlukan untuk menghasilkan sertifikat yang ditandatangani sendiri.

Untuk memeriksa apakah paket openssl diinstal pada sistem Linux Anda, buka terminal Anda, ketik openssl version, dan tekan Enter. Jika paket diinstal, sistem akan mencetak versi OpenSSL, jika tidak, Anda akan melihat sesuatu seperti perintah openssl command not found.

Jika paket openssl belum diinstal pada sistem, Anda dapat menginstalnya dengan menjalankan perintah berikut:

  • Ubuntu dan Debian
    sudo apt install openssl
  • Centos dan Fedora
    sudo yum install openssl

Membuat Self-Signed SSL Certificate

Untuk membuat sertifikat SSL yang ditandatangani sendiri, gunakan perintah openssl req:

openssl req -newkey rsa:4096 \
            -x509 \
            -sha256 \
            -days 3650 \
            -nodes \
            -out example.crt \
            -keyout example.key

Mari uraikan perintah dan pahami apa arti setiap opsi:

  • -newkey rsa:4096 – Membuat permintaan sertifikat baru dan kunci RSA 4096 bit. Yang standar adalah 2048 bit.
  • -x509 – Membuat Sertifikat X.509.
  • -sha256 – Gunakan 265-bit SHA (Secure Hash Algorithm).
  • -days 3650 – Jumlah hari untuk mensertifikasi sertifikat. 3650 adalah 10 tahun. Anda dapat menggunakan bilangan bulat positif.
  • -nodes – Membuat kunci tanpa frasa sandi.
  • -out example.crt – Menentukan nama file untuk menulis sertifikat yang baru dibuat. Anda dapat menentukan nama file apa pun.
  • -keyout example.key – Menentukan nama file untuk menulis kunci pribadi yang baru dibuat. Anda dapat menentukan nama file apa pun.

Untuk informasi lebih lanjut tentang opsi perintah openssl req kunjungi halaman dokumentasi OpenSSL req.

Setelah Anda menekan Enter, perintah akan menghasilkan private key dan menanyakan serangkaian pertanyaan yang akan digunakan untuk menghasilkan sertifikat.

Generating a RSA private key
......................................................................++++
........++++
writing new private key to 'example.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----

Masukkan informasi yang diminta dan tekan Enter.

Country Name (2 letter code) [AU]:ID
State or Province Name (full name) [Some-State]:East Java
Locality Name (eg, city) []:Surabaya
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Linuxid
Organizational Unit Name (eg, section) []:Admin
Common Name (e.g. server FQDN or YOUR name) []:linuxid.net
Email Address []:[email protected]

Sertifikat dan private key akan dibuat di lokasi yang ditentukan. Gunakan perintah ls untuk memverifikasi bahwa file telah dibuat:

ls
example.crt example.key

Pada poin ini, Anda telah menghasilkan sertifikat SSL baru.

Membuat Sertifikat SSL yang Ditandatangani Sendiri tanpa Prompt

Jika Anda ingin membuat sertifikat SSL yang ditandatangani sendiri tanpa diminta pertanyaan, gunakan opsi -subj dan tentukan semua informasi subjek:

openssl req -newkey rsa:4096 \
            -x509 \
            -sha256 \
            -days 3650 \
            -nodes \
            -out example.crt \
            -keyout example.key \
            -subj "/C=ID/ST=Ljubljana/L=Ljubljana/O=Security/OU=IT Department/CN=www.example.com"
Generating a RSA private key
......................................................................++++
........++++
writing new private key to 'example.key'
-----

Bidang, yang ditentukan dalam -subj baris tercantum di bawah ini:

  • C= – Nama negara. Singkatan ISO dua huruf.
  • ST= – Nama Provinsi.
  • L= – Nama kota tempat Anda berada.
  • O= – Nama lengkap organisasi Anda.
  • OU= – Unit Organisasi.
  • CN= – Nama domain yang sepenuhnya memenuhi syarat.

Kesimpulan

Dalam panduan ini, kami telah menunjukkan kepada Anda cara membuat sertifikat SSL yang ditandatangani sendiri menggunakan alat openssl. Sekarang setelah memiliki sertifikat, Anda dapat mengonfigurasi aplikasi untuk menggunakannya.