Cara Membuat dan Menginstall SSL di Nginx Debian

Untuk membuat sertifikat SSL serta memasangnya di website, syarat utama harus sudah membeli layanan SSL, agar dapat diaktifkan di website kamu.

Banyak layanan penyedia SSL murah dengan harga minimal 50 Ribu-10 Juta /tahun. ($5-$78/year)

Baca juga: Cara Membuat WordPress di VPS: Cara Setting Nginx dan Install WordPress

Contoh di sini penulis menggunakan layanan dari ssls.com

Berikut langkahnya:

1. Login ke halaman web penyedia SSL, lalu tahap pertama akan diminta membuat CSR (Certificate Signing Request).

Cara Membuat dan Menginstall SSL di Nginx Debian 1

Membuat folder, file server key dan file CSR

2. Sekarang membuat file CSR nya di server yang kita gunakan. Pertama buat direktori baru untuk menyimpan file sertifikat SSL.

sudo mkdir /etc/nginx/sslinwepo

3. Selanjutnya masuk ke direktori yang telah dibuat.

cd /etc/nginx/sslinwepo

4. Membuat servey key berikut perintahnya:

sudo openssl genrsa -des3 -out server.key 2048

Kamu akan diminta membuat sebuah password (passphrase) baru.

5. Membuat CSR.

sudo openssl req -new -key server.key -out server.csr

6 Menghapus Passphrase.

sudo cp server.key server.key.org
sudo openssl rsa -in server.key.org -out server.key

7. Membuat tanda tangan CSR.

sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Upload CSR ke layanan SSL

8. Buka file server.scr kamu dan paste ke layanan SSL.

cat server.csr

Kembali ke layanan SSL (langkah 1.)

Paste ke kolom lalu klik “Read My CSR” untuk  melanjutkan.

9. Selanjutnya pilih “ANY OTHER SERVER (EX.APACHE/NGINX)” bila kamu menginstallnya di server apache/nginx. Jika sudah memilih lanjut “LOOKS GOOD ONWARD”.

Lanjut lagi “ONWARD”.

10. Sekarang proses verifikasi pilih “RECEIVE AN EMAIL” bila ingin memverifikasikannya melalui email. Pilih “UPLOAD FILE” bila ingin memverifikasinya melalui upload file ke server.

Penulis memilih melalui email. Jika sudah lanjut “GOT IT ONWARD”.

11. Buka email untuk verifikasi, klik link “here” lalu masukan validation code.

12. Jika sudah proses verifikasinya tunggu sesaat kurang lebih setengah jam, lalu masuk ke akun penyedia SSL jika status dinyatakan Active berarti sudah bisa digunakan. Klik nomor cart untuk mengunduh file yang akan di install ke server kita.

13. Download file SSL dan upload ke server kamu, masukan ke dalam directory /etc/nginx/sslinwepo.

Extract file zip yang sudah di upload ke server.

unzip inwepo.zip

14. Setelah di upload sekarang gabungkan ke 3 file SSL tersebut dengan perintah:

cat inwepo.co.crt inwepo.co.p7b inwepo.co.ca-bundle > ssl-bundle.crt

Jika sudah di bundle, sekarang kita install, buka file config nginx lalu tambahkan perintah berikut ini:

server { listen 443; 
ssl on; ssl_certificate /etc/nginx/ssl/example_com/ssl-bundle.crt; 
ssl_certificate_key /etc/nginx/ssl/example_com/server.key;

# side note: only use TLS since SSLv2 and SSLv3 have had recent vulnerabilities 
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

15. Test nginx apakah ada yang error.

nginx -t

16.,Jika tidak ada, lalu restart atau reload nginx-nya.

sudo etc/init.d/nginx restart

atau

sudo etc/init.d/nginx reload

Selesai.

Jika terdapat pesan error pada nginx seperti berikut ini:

nginx: [emerg] PEM_read_bio_X509("/etc/nginx/sslinwepo/ssl-bundle.crt") failed (SSL: error:0906D066:PEM routines:PEM_read_bio:bad end line)

buka dan edit file ss-bundle.crt

nano ss-bundle.crt

Lalu edit scroll kebawah lihat bila ada text comment yang menyatu —- silakan di enter (dipisahkan jangan sampai garis end dan begin menyatu)

Simpan dan test kembali.

Tambahan: Untuk keamanan SSL bisa mengaktifkan ssl chipers dengan menambahkan config di nginx 

ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';

 ssl_prefer_server_ciphers on;
 ssl_dhparam /etc/nginx/sslinwepo/dhparams.pem;