Cara Install Let]s Encrypt SSL (HTTPS) dengan Apache di CentOS 7

Sebelumnya saya sudah membahas tentang apa itu SSL, cara install HTTPS di localhost untuk kebutuhan development dengan menggunakan web server Apache dan Nginx. Kemudian beberapa teman-teman komunitas di Facebook bertanya bagaimana cara konfigurasi HTTPS di server yang sudah online atau production server? Nah, di tutorial ini saya membahas HTTPS dengan Apache web server di CentOS 7. Untuk tutorial Let’s Encrypt dengan Nginx baca di sini.

-Tentang Let’s Encrypt-

Dulu untuk mendapatkan sertifikat SSL, kita harus membeli dari Certificate Authority dan memperbarui sertifikat SSL jika masa berlaku telah habis. Sekarang sudah ada Let’s Encrypt yang memberikan sertifikat SSL gratis level Domain Validation yang belaku selama 90 hari.

Let’s Encrypt adalah organisasi non profit yang didirikan dengan tujuan agar website yang ada di dunia ini seluruhnya bisa menjadi aman. Sumber pendanaan untuk Let’s Encrypt berasal dari sponsor dan donasi berbagai perusahaan teknologi dunia seperti Mozilla, Cisco, EFF, Chrome, Facebook, Automattic, Vultr, Digitalocean, dan masih banyak lagi.

Sponso dan Donatur Let’s Encrypt

Kalau website berada di shared hosting, pada umumnya control panel hosting seperti cPanel sudah mendukung sertifikat SSL Let’s Encrypt. Hanya membutuhkan beberapa klik di cPanel, website kita sudah menggunakan SSL Let’s Encrypt.

Berbeda kalau berada di VPS atau dedicated server, kita harus melakukan instalasi dan konfigurasi Let’s Encrypt beserta web server.

-0. Perangkat yang Digunakan-

Perangkat yang digunakan pada tutorial ini:

· Domain linus.cf · VPS Vultr dengan OS CentOS 7 64bit · Web Server Apache · certbot · Mozilla Firefox

-1. Install Let’s Encrypt untuk Apache-

Diasumsikan virtualhost untuk domain linus.cf sudah aktif dan dapat diakses dengan baik.

Domain linus.cf dengan protokol HTTP

Install EPEL repository

[INPUT]

1 # yum install epel-release

Install modul SSL Apache dan certbot untuk Apache

[INPUT]

1 # yum install mod_ssl python-certbot-apache

-2. Meminta Sertifikat SSL dari Let’s Encrypt-

Selanjutnya meminta sertifikat SSL untuk domain linus.cf.

[INPUT]

1 # certbot –apache -d linus.cf -d www.linus.cf

Masukkan alamat email untuk notifikasi sertifikat SSL yang akan habis masa berlakunya.

[INPUT]

1 2 Enter email address (used for urgent renewal and security notices) (Enter ‘c’ to cancel): hai@musaamin.web.id

Setujui ToS

[INPUT]

1 2 3 4 5 6 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 at https://acme-v02.api.letsencrypt.org/directory – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – (A)gree/(C)ancel: A

Jawab Y untuk mendapatkan informasi mengenai proyek Let’s Encrypt.

[INPUT]

1 2 3 4 5 6 Would you be willing 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

Sertifikat SSL mulai dibuat

[INPUT]

1 2 3 4 5 Obtaining a new certificate Performing the following challenges: http-01 challenge for linus.cf http-01 challenge for www.linus.cf Waiting for verification…

Membuat virtualhost dengan SSL.

[INPUT]

1 2 3 4 Created an SSL vhost at /etc/httpd/sites-available/linus.cf-le-ssl.conf Deploying Certificate to VirtualHost /etc/httpd/sites-available/linus.cf-le-ssl.conf Enabling site /etc/httpd/sites-available/linus.cf-le-ssl.conf by adding Include to root configuration Deploying Certificate to VirtualHost /etc/httpd/sites-available/linus.cf-le-ssl.conf

Jawab 2, semua permintaan HTTP dialihkan ke HTTPS. certbot akan mengubah konfigurasi VirtualHost Apache.

[INPUT]

1 2 3 4 5 6 7 8 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

Sertifikat SSL sudah aktif dan dapat diuji menggunakan ssllabs.com.

[INPUT]

1 2 3 4 5 6 Congratulations! You have successfully enabled https://linus.cf and https://www.linus.cf   You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=linus.cf https://www.ssllabs.com/ssltest/analyze.html?d=www.linus.cf

-3. Memeriksa Konfigurasi VirtualHost Apache-

Memeriksa perubahan yang dilakukan oleh certbot terhadap file konfigurasi VirtualHost Apache.

File linus.cf.conf. Bertambah opsi RewriteEngine, RewriteCond, dan RewriteRule.

[INPUT]

1 2 3 4 5 6 7 8 9 10 11     ServerName linus.cf     ServerAlias www.linus.cf     DocumentRoot /var/www/html/linus.cf     ErrorLog /var/log/httpd/linus.cf.error.log     CustomLog /var/log/httpd/linus.cf.requests.log combined RewriteEngine on RewriteCond %{SERVER_NAME} =linus.cf [OR] RewriteCond %{SERVER_NAME} =www.linus.cf RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

certbot juga membuat file baru linus.cf-le-ssl.conf yang merupakan konfigurasi virtualhost untuk port 443 (HTTPS) dan berisi opsi pemanggilan file sertifikat SSL.

[INPUT]

1 2 3 4 5 6 7 8 9 10 11 12 13     ServerName linus.cf     ServerAlias www.linus.cf     DocumentRoot /var/www/html/linus.cf     ErrorLog /var/log/httpd/linus.cf.error.log     CustomLog /var/log/httpd/linus.cf.requests.log combined Include /etc/letsencrypt/options-ssl-apache.conf SSLCertificateFile /etc/letsencrypt/live/linus.cf/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/linus.cf/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/linus.cf/chain.pem

-4. Pengujian SSL / HTTPS-

Selanjutnya menguji apakah SSL sudah terpasang dengan baik.

a. Cara Pertama: Mengakses domain melalui web browser

Domain harus dapat diakses menggunakan HTTPS dan harus secara otomatis dialihkan dari HTTP ke HTTPS.

Domain linus.cf dengan protokol HTTPS

b. Cara Kedua: Menguji Rating Sertifikat SSL

Pengujian dilakukan menggunakan layanan dari SSLLabs.com.

SSL Labs Menguji Rating SSL linus.cf

-5. Memperbarui Sertifikat SSL Secara Otomatis-

Sertifikat SSL dari Let’s Encrypt hanya berlaku selama 90 hari dan harus diperbarui secara berkala. Kita dapat menggunakan crontab atau cronjob untuk menjalankan perintah memperbarui sertifikat SSL secara otomatis.

Masuk modifikasi crontab

[INPUT]

1 # crontab -e

Buat penjadwalan untuk certbot. Menjalankan perintah memperbarui sertifikat SSL setiap hari pada jam 01.00.

[INPUT]

1 00 1 * * * /usr/bin/certbot renew –quiet

Selamat mencoba 🙂

Leave a Reply

Your email address will not be published.