Cấu hình SSL cho website với Let's Encrypt


Ở kỹ nguyên thế giới số, bảo mật website là yêu cầu tối thiểu với bất cứ website nào. Với website nhỏ bạn có thể cài đặt let encrypt bạn có thể có SLL mà không tốn thêm chi phí. Mời các bạn làm theo các bước dưới đây để cài Let Encrypt.

Let Encrypt

Nội dung

  1. SSL là gì
  2. Bước 1 chuẩn bị
  3. Bước 2 cài Cerbot
  4. Bước 3 tạo Wildcard SSL
  5. Bước 4 cấu hình DNS để chứng thực domain.
  6. Bước 5 Cấu hình web server( nginx hay apache)
  7. Bước 6 Tự động gia hạn Let's encrypt

SSL là gì?

SSL là viết tắt của từ Secure Sockets Layer. Đây là một tiêu chuẩn an toàn dữ liệu được truyền đi giữ trình duyệt và máy chủ. Kể cả khi dữ liệu bị đánh cắp trong quá trình truyền qua mạng internet, hacker không thể đọc được thông tin dữ liệu. Vì thế SSL là yêu cầu bắt buộc với tất cả website bán hàng. SSL bảo vệ thông tin người mua hàng như: thẻ tín dụng giúp người mua hàng yên tâm thanh toán bằng thẻ tín dụng. Vài tháng trước Google Chrome bắt đầu cảnh báo website "Not Secure" với các website không sử dụng SSL. SSL là yêu cầu cơ bản bảo vệ website an toàn. Giá SSL trước đây không hề rẻ vì vậy rất nhiều doanh nghiệp đã bỏ qua điều quan trọng này. Một tin vui là Let's Encrypt đã bắt đầu cung cấp những gói SSL miễn phí cho website. Dưới đây là các bước cài đặt SSL cho server.

Bước 1: Chuẩn bị

Chắc chắn server của bạn đã cài đặt python 2.7 hay 3 và git. Nếu server đã được cài đặt bạn có thể bỏ qua bước này.

apt-get update
apt-get install python-minimal
python --version
apt-get install git-core
git --version

Bước 2: Cài Certbot

cd /opt
git clone https://github.com/certbot/certbot.git
cd certbot && ./certbot-auto

Bước 3: Tạo Wildcard SSL

./certbot-auto certonly --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns -d 'yourdomain.com,*.yourdomain.com'

Bước 4: cấu hình DNS để chứng thực domain.

Theo hướng dẫn Let's encrypt thêm TXT record để chứng thực chủ sở hữu domain.

Please deploy a DNS TXT record under the name
_acme-challenge.yourdomain.com with the following value:
_rBs-DZ-WE8eb2PyDi3gnxR4rkNWNGG_e5XE6k__B88
Before continuing, verify the record is deployed.

Bạn nên chờ ít nhất 5 phút để DNS cập nhật xong. Sau khi chứng thực let's encrypt sẻ tạo cho bạn 2 key

Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/yourdomain.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/yourdomain.com/privkey.pem
Your cert will expire on 2019-03-25. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again. To non-interactively renew *all* of your certificates, run
"certbot-auto renew"

Bước 5: Cấu hình web server( nginx hay apache)

Cấu hình Nginx

server {
    listen 443 ssl;
    server_name yourdomain.com;
    ssl on;
    ssl_certificate     /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdoamin.com/privkey.pem;
}

Cấu hình tự động redirect từ http qua https

server {
	listen 80; server_name yourdomain.com www.yourdomain.com;
	return 301 https://$server_name$request_uri;
}

Bước 6: Cấu hình cronjob để tự động gia hạn Let's encrypt

Dùng cronjob tự động gia hạn Let's encrypt

sudo crontab -e

Thêm dòng 1 cronjob

0 0 1 * * /opt/certbot/certbot-auto renew

Chúc mừng bạn, vậy là website của bạn đã có https và ko phải lo gia hạn sau 1 năm.

Cài đặt Http2

Sửa dòng 

listen 443 ssl;

thành

listen 443 ssl http2;

Lưu file và restart nginx.

Tags