Cách tạo và setup TLS/SSL certificate bằng let’s encrypt cho Apache

lets-encrypt-phabricator

Lần này mình sẽ hướng dẫn các bạn cách để tạo và setup tls/ssl certificate trên debian 9 bằng lets-encrypt. Thông tin môi trường mà mình dùng để hướng dẫn các bạn là như sau:

# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
VERSION_CODENAME=stretch
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
# apache2 -v
Server version: Apache/2.4.25 (Debian)
Server built:   2019-10-13T15:43:54
#

Các bước để tạo và setup TLS/SSL certificate:

1) Cài đặt Let’sEncrypt certbot

Sử dụng câu lệnh như bên dưới để cài
# sudo apt-get install certbot

2) Tạo và cài đặt SSL certificates bằng certbot

Sử dụng câu lệnh như bên dưới để tạo và cài đặt
# sudo certbot --apache 
Saving debug log to /var/log/letsencrypt/letsencrypt.log
The requested apache plugin does not appear to be installed 

Khi xảy ra lỗi trên thì các bạn có thể fix bằng cách gõ lệnh sudo apt-get install python-certbot-apache. Sau đấy chạy lại lệnh sudo certbot --apache

3) Kiểm tra lại SSL certificates đã tạo

# ls -la /etc/letsencrypt/live
total 16
drwx------ 3 root root 4096 Dec 23 02:29 .
drwxr-xr-x 9 root root 4096 Dec 24 12:51 ..
-rw-r--r-- 1 root root  740 Dec 23 02:29 README
drwxr-xr-x 2 root root 4096 Dec 23 02:29 www.blogchiase.tokyo
#
# ls -la /etc/letsencrypt/live/www.blogchiase.tokyo/
total 12
drwxr-xr-x 2 root root 4096 Dec 23 02:29 .
drwx------ 3 root root 4096 Dec 23 02:29 ..
lrwxrwxrwx 1 root root   44 Dec 23 02:29 cert.pem -> ../../archive/www.blogchiase.tokyo/cert1.pem
lrwxrwxrwx 1 root root   45 Dec 23 02:29 chain.pem -> ../../archive/www.blogchiase.tokyo/chain1.pem
lrwxrwxrwx 1 root root   49 Dec 23 02:29 fullchain.pem -> ../../archive/www.blogchiase.tokyo/fullchain1.pem
lrwxrwxrwx 1 root root   47 Dec 23 02:29 privkey.pem -> ../../archive/www.blogchiase.tokyo/privkey1.pem
-rw-r--r-- 1 root root  692 Dec 23 02:29 README
#

4) Check lại configuration của Apache

# sudo apachectl configtest
Syntax OK
#

5) Khởi động lại Apache

# sudo service apache2 reload 

6) Thiết lập việc tự động làm mới SSL certificates

# ls -la /etc/letsencrypt/LetsEncryptUpdate.sh
-rwxr-xr-x 1 root root 637 Dec 25 01:48 /etc/letsencrypt/LetsEncryptUpdate.sh
#
# cat /etc/letsencrypt/LetsEncryptUpdate.sh
#!/bin/bash
expiration_month=`openssl x509 -in /etc/letsencrypt/live/www.blogchiase.tokyo/fullchain.pem -noout -enddate | cut -d= -f 2 | awk '{print $1}'`
expiration_date=`openssl x509 -in /etc/letsencrypt/live/www.blogchiase.tokyo/fullchain.pem -noout -enddate | cut -d= -f 2 | awk '{print $2}'`
current_month=`date | awk '{print $2}'`
current_date=`date | awk '{print $3}'`
if [ $expiration_month = $current_month -a $expiration_date = $current_date ]; then
  echo "$expiration_month is $current_month."
  /usr/bin/certbot renew >> /etc/letsencrypt/update_log.txt; /etc/init.d/apache2 restart >> /etc/letsencrypt/update_log.txt
fi
#
# grep LetsEncryptUpdate.sh /etc/crontab
0 0 * * * root /etc/letsencrypt/LetsEncryptUpdate.sh
#

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です