Untuk melakukan meng-install SSL Let’s Encrypt di Apache di Ubuntu 18.04 ada yang di persiapan yaitu .
- VPS dengan OS Ubuntu 18.04.
- Domain yang sudah diarahkan ke alamat IP VPS.
- Akses root.
Untuk Instalasi SSL Let’s Encrypt anda perlu melakukan langkah sebagai berikut:
- Update Server
- Install Firewall
- Install Certbot
- Install Sertifikat SSL
- Setting Virtual Configuration Apache
- Tes SSL
1. Update Server
Login sebagai root dan perbarui package yang ada pada server agar up-to-date.
$ apt-get update -y $ apt-get upgrade -y $ reboot
Install beberapa packages yang dibutuhkan.
$ apt-get install nano perl wget -y
2. Install Firewall
Sebelum memulai instalasi SSL Let’s Encrypt, anda perlu meng-install firewall agar lebih aman. Firewall yang digunakan kali ini adalah CSF (ConfigServer Security & Firewall). Instalasinya dilakukan dengan perintah berikut:
$ cd /usr/src $ wget https://download.configserver.com/csf.tgz $ tar -xzf csf.tgz $ cd csf/ $ sh install.sh
Di konfigurasi CSF, ubah “make TESTING=’1’ menjadi 0”.
$ nano /etc/csf/csf.conf
Reload rules CSF-nya.
$ csf -r
3. Install Certbot
Agar bisa mendapatkan sertifikat SSL, anda perlu meng-install Let’s Encrypt Client bernama Certbot terlebih dahulu di Apache pada Ubuntu 18.04. Meski secara default Certbot sudah tersedia di package manager Ubuntu, namun versinya sudah tidak berlaku sehingga anda perlu menambahkan repositori Certbot untuk mendapatkan versi yang up-to-date.
$ add-apt-repository ppa:certbot/certbot Press [ENTER] to continue or Ctrl-c to cancel adding it.
Tekan ENTER untuk menyetujui penambahan repositori. Kemudian, install Certbot package dengan:
$ apt-get install python-certbot-apache -y
4. Install Sertifikat SSL
Langkah install sertifikat SSL dengan Apache di Ubuntu 18.04 selanjutnya, buat sertifikat untuk domain yang kamu gunakan. Di artikel ini kami menggunakan nama domain example.com . Simak pada langkah berikut:
$ certbot --apache
Kemudian akan ada beberapa form yang perlu diisi.
Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): (masukkan alamat email kamu). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server. Do you agree? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(N)o: A Would you be willing, once your first certificate is successfully issued, to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: N
Kami memilih N (No) karena tidak ingin berlangganan email campaign, tapi jika anda ingin mendapatkan email rutin mengenai news, campaign, dan hal lainnya yang berhubungan dengan Certbot, kamu bisa pilih Y (Yes).
Which names would you like to activate HTTPS for? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1:example.com 2: www.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate numbers separated by commas and/or spaces, or leave input blank to select all options shown (Enter 'c' to cancel): 1
Secara default, Certbot akan mengidentifikasi nama domain dari deklarasi server_name pada pengaturan virtual host Apache anda. Jika anda belum memiliki pengaturan virtual host Apache, maka anda perlu memasukan nama domainnya secara manual. Kelebihan dari hasil setting yang sudah terdeteksi adalah Certbot akan langsung melakukan instalasi dan konfigurasi secara otomatis.
Jika instalasinya berhasil, maka akan keluar output di bawah ini.
Obtaining a new certificate Performing the following challenges: http-01 challenge for example.co Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/example-le-ssl.conf Enabled Apache socache_shmcb module Enabled Apache ssl module Deploying Certificate to VirtualHost /etc/apache2/sites-available/example-le-ssl.conf Enabling available site: /etc/apache2/sites-available/example-le-ssl.conf 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): 2
Kami memilih 2 agar jika ada request yang masuk ke web server, akan segera diarahkan ke HTTPS (SSL).
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://example.com
Saat ini sertifikat SSL sudah ter-install secara otomatis oleh Certbot.
Path file sertifikat berada pada:
/etc/letsencrypt/live/example.com/fullchain.pem
Path file Private Key berada pada:
/etc/letsencrypt/live/example.com/privkey.pem
5. Setting Virtual Configuration Apache
Certbot sudah berhasil melakukan instalasi sertifikat SSL secara otomatis, namun pengaturannya belum up-to-date, maka kamu perlu melakukan update untuk mendapatkan rating grade SSL A+. Caranya, ubah pengaturan SSLProtocol dan SSLCipherSuite SSL pada:
$ nano /etc/letsencrypt/options-ssl-apache.conf SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
Kemudian simpan dan keluar. Setelah itu, tambahkan script berikut untuk mengaktifkan HSTS pada Apache kamu. Tambahkan sebelum tag </VirtualHost>.
$ nano /etc/apache2/sites-available/example-le-ssl.conf ### code ### Header always set Strict-Transport-Security "max-age=31536000; includeSubdomains;" ### code ###
Simpan lalu keluar. Tambahan informasi, ### code ### adalah script yang sudah ada pada konfigurasi virtual kamu sebelumnya.
Aktifkan modul headers pada Apache.
$ a2enmod headers
Restart Apache.
$ systemctl restart apache2
Jika sudah, verifikasi perubahan dari hasil konfigurasi anda dengan perintah di bawah ini.
$ apachectl configtest Syntax OK
Restart Apache kembali.
$ systemctl restart apache2
6. Tes SSL
Cara install sertifikat SSL dengan Apache di Ubuntu 18.04 hampir selesai. Langkah terakhir yang perlu anda lakukan adalah melakukan tes SSL, apakah sudah terpasang dengan baik atau belum. Kunjungi website-mu, lalu klik ikon gembok di sebelah kiri URL di bar browser anda dan selanjutnya melakukan tes SSL di SSL Labs untuk mengetahui grade SSL kamu. Gambar berikut adalah tampilan setelah kamu mengklik ikon gembok di sebelah kiri URL.
Setelah memasukkan nama domain, SSL Labs akan mulai mengecek sertifikat SSL yang digunakan. Setelah menunggu beberapa menit, berikut ini adalah tampilan Overall Rating Grade SSL Certificate yang sudah ter-install dan sudah dimodifikasi sesuai cara install di atas.