Hướng dẫn tạo chứng chỉ Let’s Encrypt SSL cho FusionPBX

Hướng dẫn tạo chứng chỉ Let’s Encrypt SSL cho FusionPBX

Để tăng tính bảo mật cho website thường chúng ta phải thiết lập SSL cho trang web. Chúng ta phải mua chứng chỉ một số tổ chức uy tín như RapidSSL, GeoTrust, Commodo,.. Hôm nay mình chia sẻ chứng chỉ SSL miền phí đó là Let’s Encrypt
Bài lab yêu cầu đã được cài đặt FusionPBX theo hướng dẫn 2 bài trước của mình tại đây hoặc đã cài FusionPBX trước đó. Để hoạt động bạn phải có tên miền gốc, subdomain.

1.Chuẩn bị:

Certbot v0.28
FusionPBX4.4
Debian9
Nginx

2.Cài đặt

# apt install certbot

Tạo một thư mục nếu chưa có

# mkdir -p /var/www/letsencrypt
# chown -R www-data. /var/www/letsencrypt

Chỉnh lại nginx chuyển hướng từ cổng 80

# nano /etc/nginx/sites-available/fusionpbx
server {
listen 80;
server_name fusionpbx;

#redirect letsencrypt
location ^~ /.well-known/acme-challenge {
default_type "text/plain";
auth_basic "off";
alias /var/www/letsencrypt;
}

Xong reload lại nginx
#  systemctl reload nginx

3.Tạo chứng chỉ

Chạy khi để thiết lập 1 tên miền hoặc nhiều subdomain.

# certbot certonly --manual --preferred-challenges=dns --email [email protected] \
--server https://acme-v02.api.letsencrypt.org/directory --agree-tos \
-d pbx.somedomain.com \
-d *.pbx.somedomain.com \
-d pbx.someotherdomain.com \
-d mypbxdomain.com

Yêu cầu xác minh chủ sở hữu tên miền bằng cách tạo TXT bản ghi cho mỗi domain đăng kí. Nhớ đổi tên domain của bạn.
Copy chuỗi sinh ra như hình và kiểm tra bằng câu lệnh bên dưới trước khi bấm Enter (nếu nhiều tên miền phải kiểm tra toàn bộ).

# apt install -y dnsutils
# dig -t txt _acme-challenge.subdomain.somedomain.com

Let's Encrypt

Thêm vài nginx nếu kiểm tra thành công.

# nano /etc/nginx/sites-available/fusionpbx
server {
listen 443;
server_name fusionpbx;
ssl on;
# ssl_certificate /etc/ssl/certs/nginx.crt;
# ssl_certificate_key /etc/ssl/private/nginx.key;
ssl_certificate /etc/letsencrypt/live/subdomain.somedomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/subdomain.somedomain.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!ADH:!MD5:!aNULL;

# systemctl reload nginx

Tự động đăng kí mới không hết hạn thêm cron bên dưới.

# crontab -e
# In this example, the command is run at 1:02 am on Sundays.
2 1 * * 0 /usr/bin/certbot renew

Chúc các bạn thành công!

Tham khảo: https://letsencrypt.org/vi/how-it-works

Bài viết liên quan

Leave a Reply

Your email address will not be published. Required fields are marked *