Sertifikat SSL sangat penting untuk komunikasi aman antara web server dan client. Untuk keperluan testing atau penggunaan internal, sertifikat SSL self-signed bisa menjadi alternatif yang sesuai dibandingkan sertifikat komersial.
Sebelum memulai, pastikan OpenSSL sudah terinstal di sistem Anda. Sebagian besar distribusi Linux sudah menyertakan OpenSSL secara pre-installed. Untuk memverifikasinya, jalankan perintah berikut:
openssl version
Jika OpenSSL belum terinstal, Anda dapat menginstalnya di Ubuntu 25.10 dengan perintah:
sudo apt update && sudo apt install openssl -y
Langkah pertama dalam pembuatan sertifikat SSL adalah menghasilkan private key. Jalankan perintah berikut untuk membuat private key RSA 2048-bit bernama mydomain.key:
openssl genrsa -out mydomain.key 2048
Untuk keamanan yang lebih kuat, Anda dapat mengganti nilai 2048 dengan 4096.
Setelah private key dibuat, langkah selanjutnya adalah membuat Certificate Signing Request (CSR). CSR ini berisi informasi tentang entitas yang mengajukan sertifikat. Gunakan private key yang telah dibuat sebelumnya:
openssl req -new -key mydomain.key -out mydomain.csr
Selama proses ini, Anda akan diminta untuk memasukkan beberapa detail seperti Country Name, State or Province Name, Locality Name, Organization Name, Organizational Unit Name, Common Name (nama domain atau FQDN server), dan Email Address. Isi semua detail yang diminta dan tekan Enter.
Dengan CSR dan private key yang sudah ada, kini Anda bisa membuat sertifikat self-signed. Perintah berikut akan menghasilkan sertifikat dengan masa berlaku satu tahun (365 hari):
openssl x509 -req -days 365 -in mydomain.csr -signkey mydomain.key -out mydomain.crt
File mydomain.crt akan berisi sertifikat self-signed yang telah dihasilkan.
Untuk mengimplementasikan sertifikat SSL self-signed ini dengan Nginx, Anda perlu memindahkan file sertifikat (.crt) dan private key (.key) ke direktori yang sesuai. Direkomendasikan untuk menempatkannya di /etc/nginx/ssl/. Buat direktori tersebut jika belum ada, lalu salin file-nya:
sudo mkdir -p /etc/nginx/ssl
sudo cp mydomain.crt /etc/nginx/ssl/
sudo cp mydomain.key /etc/nginx/ssl/
Selanjutnya, Anda perlu mengkonfigurasi Nginx untuk menggunakan sertifikat ini. Buka file konfigurasi Nginx Anda, biasanya terletak di /etc/nginx/sites-available/default atau /etc/nginx/nginx.conf, menggunakan text editor seperti vi atau nano. Modifikasi blok server untuk mengaktifkan SSL:
server {
listen 443 ssl;
server_name mydomain.com;
ssl_certificate /etc/nginx/ssl/mydomain.crt;
ssl_certificate_key /etc/nginx/ssl/mydomain.key;
location / {
root /var/www/html;
index index.html;
}
}
Pastikan Nginx mendengarkan pada port 443 (HTTPS). Simpan perubahan pada file konfigurasi. Setelah itu, uji konfigurasi Nginx untuk memastikan tidak ada kesalahan sintaks:
sudo nginx -t
Jika pengujian berhasil, restart layanan Nginx agar perubahan konfigurasi diterapkan:
sudo systemctl restart nginx
Atau, jika Anda menggunakan SysVinit:
sudo service nginx restart
Terakhir, verifikasi apakah konfigurasi SSL telah terinstal dengan benar. Anda dapat menggunakan perintah openssl s_client untuk memeriksa detail sertifikat:
openssl s_client -connect mydomain.com:443 -servername mydomain.com
Sebagai alternatif, buka web browser Anda dan navigasikan ke https://mydomain.com. Karena ini adalah sertifikat self-signed, browser kemungkinan akan menampilkan peringatan keamanan. Anda dapat melewati peringatan ini dengan menambahkan sertifikat ke daftar trusted certificate di browser Anda. Meskipun sertifikat self-signed cocok untuk testing atau penggunaan internal, untuk lingkungan produksi, sangat disarankan untuk mendapatkan sertifikat SSL dari Certificate Authority (CA) terpercaya untuk menghindari peringatan keamanan browser dan membangun kepercayaan pengguna.
Penulis: Felix Ibo Bukhara