Mengaktifkan SSL di Nginx Tanpa Domain

Pelajari cara Mengaktifkan SSL di Nginx Tanpa Domain.

1. Buat Sertifikat Self-Signed

Jalankan perintah berikut untuk membuat sertifikat SSL yang berlaku 10 tahun:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/selfsigned.key \
-out /etc/ssl/certs/selfsigned.crt

Common Name (CN): Masukkan IP server, misalnya 10.10.10.25.

2. Buat File Konfigurasi SSL

Buat file konfigurasi tambahan:

sudo nano /etc/nginx/snippets/self-signed.conf

Tambahkan baris berikut:

ssl_certificate /etc/ssl/certs/selfsigned.crt;
ssl_certificate_key /etc/ssl/private/selfsigned.key;

Simpan (CTRL+X, lalu Y, lalu ENTER).

Buat juga snippet setting SSL tambahan:

sudo nano /etc/nginx/snippets/ssl-params.conf

Tambahkan baris berikut:

ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1h;
ssl_session_tickets off;

add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;

Simpan (CTRL+X, lalu Y, lalu ENTER).

3. Ubah Konfigurasi Nginx

Edit konfigurasi default Nginx:

sudo nano /etc/nginx/sites-available/default

Ubah konfigurasi menjadi:

server {
    listen 80;
    server_name _;

    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name _;

    include snippets/self-signed.conf;
    include snippets/ssl-params.conf;

    root /var/www/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

Simpan (CTRL+X, lalu Y, lalu ENTER).

4. Cek dan Restart Nginx

Cek apakah konfigurasi benar:

sudo nginx -t

Jika tidak ada error, restart Nginx:

sudo systemctl reload nginx

5. Coba akses dengan HTTPS

Buka browser dan akses:

https://10.10.10.25

? Browser akan menampilkan "Not Secure" atau "Your connection is not private".

Klik "Advanced" ? "Proceed to 10.10.10.25 (unsafe)" untuk lanjut.