Thiết lập SSL miễn phí

standards Nov 10, 2020

Chào anh chị em

Hôm nay, mình sẽ hướng dẫn mọi người thiết lập SSL miễn phí với Let's Encrypt kèm với chế độ tự động gia hạn nha ;)

1. Đầu tiên, mọi người cần hiểu SSL là gì:

SSL là chữ viết tắt của Secure Sockets Layer (Lớp socket bảo mật). Một loại bảo mật giúp mã hóa liên lạc giữa website và trình duyệt.

Hoặc anh chị em có thể đọc ở bài viết này:
HTTP và HTTPS của anh @Hiếu Đỗ

Đây là ví dụ

Có SSL Không có SSL
Clipboard---November-10--2020-2_50-PM Clipboard---November-10--2020-2_51-PM

Anh chị em thấy bên có SSL sịn sò không, thay vì đỏ lòm khi không có SSL.

Bên cạnh đó, SSL còn giúp mã hóa dữ liệu giữa người dùng và website, bảo đảm an toàn nữa đó nha.

2. Let's Encrypt

Đây là một chứng nhận mở, miễn phí và tự động được cung cấp bởi tổ chức phi lợi nhuận Internet Security Research Group (ISRG).

Vì là phi lợi nhuận nên tất nhiên là miễn phí rồi ;)

3. Hướng dẫn cài đặt và thiết lập

- Cài đặt

Đây là lệnh cài đặt thông thường qua wget để sử dụng certbot cho việc lấy chứng chỉ SSL:

wget https://dl.eff.org/certbot-auto
sudo mv certbot-auto /usr/local/bin/certbot-auto
sudo chown root /usr/local/bin/certbot-auto
sudo chmod 0755 /usr/local/bin/certbot-auto

Hoặc anh chị em có thể vào trang chủ có các lựa chọn về hệ điều hành và ở đây có hướng dẫn chi tiết cho anh chị em: https://certbot.eff.org/lets-encrypt

Clipboard---November-10--2020-3_11-PM

- Thiết lập

Sau khi anh chị em cài xong certbot-auto, để bắt đầu thiết lập SSL sử dụng lệnh:

sudo /usr/local/bin/certbot-auto --nginx --no-bootstrap

Sau đó, các trang web mà anh chị em đang thiết lập sẽ được liệt kê ra, tương ứng với mỗi domain sẽ có số thứ tự để anh chị em lựa chọn.

Sau khi chọn domain tương ứng xong, chứng chỉ sẽ bắt đầu được tự động cài đặt.

Kết quả cuối khi thành công sẽ như sau:

Clipboard---November-10--2020-3_17-PM

4. Tự động gia hạn

Đây là việc khá quan trọng, dịch vụ này sẽ sinh ra chứng chỉ SSL có thời hạn là 3 tháng. Vì vậy, để tiếp tục duy trì SSL anh chị em cần thiết lập 1 cronjob để chạy tự động sinh lại chứng chỉ bằng dòng sau:

0 3 * * * /usr/local/bin/certbot-auto renew --force-renew --renew-hook "service nginx reload" >> /dev/null 2>&1

Cronjob này sẽ chạy hằng ngày vào lúc 3 giờ sáng hằng ngày, vì mình thích chứng chỉ sẽ được làm mới mỗi ngày. Còn anh chị em muốn chạy lúc nào thì thiết lập lại cronjob thôi. (Hí hí)

Và cuối cùng, bonus cho anh chị em một file conf nginx mẫu để anh em cần thì dùng thôi:

server {
    server_name xxx.xxx;
    error_log /var/log/nginx/error;

    location / {
       proxy_set_header      Host $host;
       proxy_set_header      X-Real-IP $remote_addr;
       proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header      X-Forwarded-Proto $scheme;
       proxy_set_header      X-Forwarded-Host    $host;
       proxy_set_header      X-Forwarded-Port    $server_port;

       proxy_pass	http://127.0.0.1:8080;
       proxy_read_timeout 90;
    }

    listen 80;
}

Vậy hoy, đi nha
Hẹn anh chị em ở các bài viết tiếp theo.

Photo by Boxed Water Is Better / Unsplash

Tags

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.