Cara install wildcard SSL Let’s Encrypt di CentOS

Panduan cara install wildcard SSL Let’s Encrypt. Maksud wildcard SSL adalah sertifikat SSL untuk domain dan semua subdomain. Notasi wildcard terdiri dari tanda bintang (asterisk) dan titik (period) sebelum nama domain, contoh: *.idnetter.com.

Keuntungannya install wildcard sertifikat SSL adalah kita tidak perlu mengulang menggenerate SSL untuk setiap subdomain, jadi cukup sekali saja maka semua subdomain mampu mempunyai sertifikat dan bisa diakses melalui protokol HTTPS maupun untuk koneksi FTP dan mail server.

Pada panduan kali ini saya pakai Linux CentOS, sedangkan opsi web servernya ada Apache dan Nginx, berikut langkah-langkahnya.

Install EPEL repository

yum install epel-release

Install yum utilities

yum install yum-utils

Install Certbot

Pilih salah satu sesuai web server yang Anda gunakan apakah Apache atau Nginx.

Ini untuk Apache

yum install python2-certbot-apache

Yang ini untuk Nginx

yum install python2-certbot-nginx

Membuat wildcard sertifikat SSL Let’s Encrypt

Selanjutnya membuat sertifikat SSL Let’s Encrypt dengan perintah berikut, dengan asumsi domain sudah terhubung ke server/VPS. (ganti nama domain idnetter.com dengan domain anda)

certbot certonly --manual -d *.idnetter.com -d idnetter.com --agree-tos --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory

Ada permintaan untuk memasukkan alamat email

Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected]

Selanjutnya konfirmasi untuk langganan berita dari EFF (Electronic Frontier Foundation). Saya jawab N kemudian tekan Enter

(Y)es/(N)o: N

Membuat record TXT pada DNS

Please deploy a DNS TXT record under the name
_acme-challenge.idnetter.com with the following value:

gt0ESCp91jE-1igKpM0gYOoJ_FDT7wFnL0mAOV3ijn4

Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue

Tekan Enter

Kemudian disuruh membuat record TXT lagi, tapi valuenya beda

Please deploy a DNS TXT record under the name
_acme-challenge.idnetter.com with the following value:

9A0nTz-tUTAmm3JIvw2MrHzRsSvPz5Q9fhY8nAO-rKw

Jadi ada 2 DNS TXT record untuk _acme-challenge.idnetter.com

Setelah yakin sudah deploy DNS dengan benar, baru tekan Enter. Tanda kesuksesan membuat SSL informasinya seperti ini

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/idnetter.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/idnetter.com/privkey.pem

Konfigurasi SSL di Apache dan Nginx

Berikut ini contoh konfigurasi SSL di Apache dan Nginx, diadaptasikan ke web server yang Anda gunakan.

Contoh konfigurasi SSL di Apache

<VirtualHost *:443>

ServerName idnetter.com
ServerAlias www.idnetter.com
ServerAdmin [email protected]
DocumentRoot /var/www/html

<Directory /var/www/html>
AllowOverride All
SSLRequireSSL
Options +Includes -Indexes +ExecCGI
</Directory>

SSLEngine on
SSLVerifyClient none
SSLCertificateFile /etc/letsencrypt/live/idnetter.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/idnetter.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/idnetter.com/fullchain.pem

</VirtualHost>

Contoh konfigurasi SSL pada Nginx

server {
listen 443 ssl http2;
server_name idnetter.com www.idnetter.com;
root /var/www/html;
index index.php index.html index.htm;
access_log /var/log/nginx/idnetter.com.log combined;
error_log /var/log/nginx/idnetter.com.error.log error;

ssl on;
ssl_certificate /etc/letsencrypt/live/idnetter.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/idnetter.com/privkey.pem;

....
.. dan seterusnya

Ini screenshotnya kalau berhasil

Add a comment