Skip to main content

Generate Sertifikat SSL Self-Signed

·2 mins

Sertifikat SSL self-signed adalah sertifikat yang dibuat dan ditandatangani sendiri tanpa melalui otoritas sertifikat (Certificate Authority atau CA) yang tepercaya. Jenis sertifikat ini umumnya digunakan untuk pengembangan aplikasi di lingkungan lokal (local development) atau pengujian pada jaringan internal.

Meskipun mudah dibuat dan tidak memerlukan biaya, sertifikat self-signed tidak direkomendasikan untuk lingkungan produksi yang dapat diakses publik. Karena tidak diterbitkan oleh CA tepercaya, browser dan klien HTTPS lainnya akan menampilkan peringatan keamanan saat pengguna mengakses situs yang menggunakan sertifikat tersebut.

Membuat Sertifikat SSL Self-Signed
#

Jalankan perintah berikut untuk membuat kunci privat RSA 4096-bit (key.pem) dan sertifikat SSL (cert.pem) yang berlaku selama 365 hari:

openssl req \
  -x509 \
  -nodes \
  -days 365 \
  -newkey rsa:4096 \
  -keyout key.pem \
  -out cert.pem \
  -sha256 \
  -addext "extendedKeyUsage = serverAuth" \
  -subj "/C=US/ST=State/L=City/O=Organization/CN=localhost"
Ganti nilai CN=localhost dengan nama domain atau alamat IP yang akan digunakan. Anda juga dapat mengubah nilai 365 untuk menyesuaikan masa berlaku sertifikat.

Setelah perintah berhasil dijalankan, akan terbentuk dua file:

  • key.pem — Berisi kunci privat yang digunakan oleh server. Simpan file ini dengan aman dan jangan membagikannya kepada pihak lain.
  • cert.pem — Berisi sertifikat publik yang akan dipasang pada server web atau layanan yang menggunakan TLS/SSL.

Membuat Sertifikat SSL Self-Signed dengan Subject Alternative Name (SAN)
#

Jalankan perintah berikut untuk membuat kunci privat RSA 4096-bit (key.pem) dan sertifikat SSL (cert.pem) yang berlaku selama 365 hari:

openssl req \
  -x509 \
  -nodes \
  -days 365 \
  -newkey rsa:4096 \
  -keyout key.pem \
  -out cert.pem \
  -sha256 \
  -addext "extendedKeyUsage = serverAuth" \
  -addext "subjectAltName = DNS:localhost,IP:127.0.0.1,IP:::1" \
  -subj "/C=US/ST=State/L=City/O=Organization/CN=localhost"

Sesuaikan nilai CN dan subjectAltName dengan domain atau alamat IP yang akan digunakan. Untuk beberapa domain, pisahkan setiap entri dengan koma, misalnya:

subjectAltName = DNS:example.com,DNS:www.example.com,DNS:api.example.com

Untuk alamat IP:

subjectAltName = IP:192.168.1.10,IP:10.0.0.5

Untuk memverifikasi bahwa SAN telah ditambahkan ke sertifikat, jalankan:

openssl x509 -in cert.pem -text -noout | grep -A1 "Subject Alternative Name"

Related