Install Let's Encrypt untuk apache di centos 6 dan 7 / free ssl https apache dengan Let's Encrypt di centos 6 dan 7

Disini menunjukkan cara memasang sertifikat TLS / SSL dari Let's Encrypt pada server centos 6 dan 7 dengan Apache sebagai web server. menunjukkan juga bagaimana auto renew sertifikat menggunakan crontab.

Sertifikat SSL digunakan dalam server web untuk mengenkripsi lalu lintas antara server dan klien, memberikan keamanan ekstra bagi pengguna yang mengakses web Anda. Let's Encrypt menyediakan positve ssl /sertifikat ssl secara gratis selama 3 bulan dan harus di perbaharui sebelum kadaluarsa.

Persyaratan 
1. public dns anda mengarah ke ip host yang akan anda pasang letsencript ssl nya 
2. vhost apache bekerja normal untuk http port 80 dan https port 443 (dengan ssl local untuk testing) termasuk mod_ssl sudah enable

Centos 7
1. Install sudo
$yum install sudo

2. Enable EPEL repository:  
$sudo yum install epel-release

3. install  packages yang di butuhkan
$sudo yum install httpd mod_ssl python-certbot-apache

4. pastikan apache berjalan
$systemctl status httpd

5. Requesting SSL Certificate dari Let's Encrypt 

disini masih memakai opsi --staging untuk testing dan development untuk productions bisa  hilangkan --staging nya
$sudo certbot --apache --staging -d domainmu.com -d www.domainmu.com 

atau yg bawah ini jika untuk satu domain 
$sudo certbot --apache --staging -d domainmu.com

atau yg bawah ini nanti akan memilih vhost
$sudo certbot --apache --staging
 
hasil generate dan requesting SSL Certificate dari Let's Encrypt ada di
/etc/letsencrypt/

6. Seting ssl.conf apache, silahkan sesuaikan dengan kebutuhan

selanjut nya cek konfigurasi

$sudo apachectl configtest
haslinya 
Syntax OK
restart apache
$sudo systemctl restart httpd
atau bisa edit manual vhost nya

<VirtualHost *:443>
ServerName domainmu.com
ServerAlias www.domainmu.com
. . . 

. . .
SSLEngine on
SSLCertificateFile "/etc/letsencrypt/live/domainmu.com/cert.pem"
SSLCertificateKeyFile "/etc/letsencrypt/live/domainmu.com/privkey.pem"
SSLCertificateChainFile "/etc/letsencrypt/live/domainmu.com/chain.pem"
</VirtualHost>


7. Cek ssl nya di sini
https://www.ssllabs.com/ssltest/analyze.html?d=domainmu.com&latest 

8. Auto renew
disini masih memakai opsi  --dry-run karena untuk testing dan development untuk productions bisa  hilangkan --dry-run
$sudo certbot renew --dry-run
hasilnya
Saving debug log to /var/log/letsencrypt/letsencrypt.log
-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/example.com.conf
-------------------------------------------------------------------------------
Cert not yet due for renewal

The following certs are not due for renewal yet:
  /etc/letsencrypt/live/domainmu.com/fullchain.pem (skipped)
No renewals were attempted.


Tambahkan ke crontab
$sudo crontab -e
#crontab setiap hari senin jam 02:30 atau di sesuaikan
30 2 * * 1 /usr/bin/certbot renew >> /var/log/letsencript/renew.log


9. restart apache nya 

#systemctl restart httpd
 





Centos 6 
Yang dibutuhkan di centos 6 Python 2.7 in jadi harus di install dulu
1. Install Epel Repository
#yum install epel-release
dan

rpm -ivh https://rhel6.iuscommunity.org/ius-release.rpm

2. Install Python 2.7

#yum --enablerepo=ius install git python27 python27-devel python27-pip python27-setuptools python27-virtualenv -y
3. Install git jika blm ada
#yum install git 


4. bikin directory certbot
#mkdir /certbot
#cd /certbot 


5. dunlut certboot
$wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto

 
6. jalankan certbot-auto
disini masih memakai opsi --staging untuk testing dan development untuk productions bisa  hilangkan --staging nya
$ ./certbot-auto --apache --staging 
Perintah ini akan mengenerate sertifikat dan Certbot mengedit konfigurasi Apache secara otomatis. Jika  ingin mengedit secara manual opsi certonly
$ ./certbot-auto --apache certonly --staging   

silahkan cek seting vhost nya

<VirtualHost *:443>
ServerName domainmu.com
ServerAlias www.domainmu.com
. . . 

. . .
SSLEngine on
SSLCertificateFile "/etc/letsencrypt/live/domainmu.com/cert.pem"
SSLCertificateKeyFile "/etc/letsencrypt/live/domainmu.com/privkey.pem"
SSLCertificateChainFile "/etc/letsencrypt/live/domainmu.com/chain.pem"
</VirtualHost>


7. Auto renew dengan crontab  

disini masih memakai opsi  --dry-run karena untuk testing dan development untuk productions bisa  hilangkan --dry-run
$ ./certbot-auto renew --dry-run
$crontab -e 
#crontab setiap hari senin jam 02:30
30 2 * * 1 sh /certbot/certbot-auto renew >> /var/log/letsencrypt/renew.log


8. restart apache
#service httpd restart 

Komentar

Postingan populer dari blog ini

Cloudflared argo tunnel zero trust service on Mikrotik

Migrasi zimbra ke zimbra dengan rsync

Squid Proxy ssl bump untuk transparent HTTPS #2