Taufik Mulyana
Taufik Mulyana
Linux System Administrator, Interested in Linux, Cloud, Containers
February 19, 2018 4 min read

Konfigurasi https dengan Sertifikat SSL dari Let’s Encrypt Nginx

Konfigurasi https dengan Sertifikat SSL dari Let's Encrypt Nginx

Let’s Encrypt adalah adalah layanan yang disediakan oleh Internet Security Research Group (ISRG), Prinsip utama dibalik let’s encrypt adalah Free, Automatic, Secure, Transparent, Open, Cooperative. let’s encrypt memberikan sertifikat ssl untuk mengaktifkan https untuk situs web secara gratis, setiap orang atau organisasi bisa mendapatkan, memperbarui dan mengelola sertifikat tersebut dengan bebas, karena sifatnya yang gratis dan bebas membuat let’s encrypt cukup populer, banyak sekali yang menggunakan let’s encrypt bahkan kebanyakan penyedia layanan web hosting menggunakan lets encrypt untuk website para pelanggannya.

Berikut tutorial cara mengkonfigurasi nginx agar bisa menggunakan sertifikat ssl dari let’s encrypt

Prasyarat

  • Nama Domain yang telah terdaftar di internet dan memiliki DNS record yang valid dan mengarah ke IP Address Public

Install Nginx Web Server

jika anda belum menginstall nginx, silahkan intall terlebih dahulu dengan perintah dibawah, sebelum memasang nginx silahkan install repositori epel terlebih dahulu untuk pengguna CentOS

user $ sudo yum install epel-release
user $ sudo yum install nginx

dan untuk pengguna ubuntu gunakan perintah berikur

user $ sudo apt-get install nginx

Clone Certbot

certbot merupakan sebuah utilitas yang dapat digunakan untuk mengambil sertifikat dari let’s encrypt, sebelum melakukan clone repositori certbot, silahkan pasang git terlebih dahulu

user $ sudo yum install git

untuk pengguna Ubuntu dan distribusi lain yang berbasis Debian

user $ sudo apt-get install git

lalu clone certbot dari github

user $ git clone https://github.com/certbot/certbot.git

Mendapatkan Sertifikat SSL

untuk mendapatkan sertifikat let’s encrypt kita bisa menggunakan certbot tadi, tapi sebelumya pastikan port 443 tidak sedang digunakan

baca juga  Menjalankan Odoo dibalik Reverse Proxy Nginx

masuk ke direktori certbot

user $ cd certbot

lalu kita akan menggunakan utilitas letsencrypt-auto

user $ ./letsencrypt-auto --nginx -d nothinux.id -d www.nothinux.id

silahkan ganti nothinux.id dengan nama domain yang anda gunakan,

lalu ada prompt untuk mengisi surel, silahkan isi dengan surel anda.

setelah itu akan muncul

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
 -------------------------------------------------------------------------------
 1: No redirect - Make no further changes to the webserver configuration.
 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
 new sites, or if you're confident your site works on HTTPS. You can undo this
 change by editing your web server's configuration.
 -------------------------------------------------------------------------------
 Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

silahkan anda pilih no 1

jika muncul pesan seperti dibawah proses mendapatkan sertifikat telah berhasil

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
 /etc/letsencrypt/live/nothinux.id/fullchain.pem
 Your key file has been saved at:
 /etc/letsencrypt/live/nothinux.id/privkey.pem
 Your cert will expire on 2018-05-10. To obtain a new or tweaked
 version of this certificate in the future, simply run
 letsencrypt-auto again with the "certonly" option. To
 non-interactively renew *all* of your certificates, run
 "letsencrypt-auto renew"

Konfigurasi Nginx

Edit file konfigurasi vhost, dan tambahkan konfigurasi dibawah

# SSL configuration
ssl_certificate /etc/letsencrypt/live/nothinux.id/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/nothinux.id/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

untuk listen port gunakan port 433

listen 443 ssl http2;

dan dibawah ini adalah contoh konfigurasi vhost yang menggunakan ssl

server {
     listen 80;
     server_name nothinux.id www.nothinux.id;
     return 301 https://nothinux.id$request_uri;
}

server {
    listen 443 http2 ssl;
    server_name nothinux.id www.nothinux.id;
    root /var/www/html;

    ssl on;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_certificate /etc/letsencrypt/live/nothinux.id/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/nothinux.id/privkey.pem; 

    ssl_prefer_server_ciphers on;
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';


    location / {
        index index.html;
    }
}

 

Leave a Reply

Your email address will not be published. Required fields are marked *