Hướng dẫn cài đặt SSL miễn phí Let’s Encrypt


Giới thiệu Let’s Encrypt Certificate

Let’s Encrypt là gì? Let’s Encrypt là một chứng chỉ số miễn phí, ra mắt vào ngày 12 tháng 4 năm 2016. Nó được cung cấp bởi tổ chức chứng nhận phi lợi nhuận Let Encrypt được điều hành bởi Nhóm nghiên cứu bảo mật Internet (ISRG). Nhằm cung cấp chứng chỉ X.509 cho mã hóa TLS (Transport Layer Security) miễn phí. Chứng chỉ có giá trị trong 90 ngày, trong đó việc gia hạn có thể diễn ra bất cứ lúc nào.

Hướng dẫn cài đặt Let’s Encrypt trên Ubuntu / Debian

Cài đặt Certbot

Để cài đặt Certbot chúng ta sử dụng command sau:

sudo apt-get install certbot python3-certbot-nginx

Trường hợp chưa có gói package này thì hãy add repository vào bằng command sau:

sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update

Rồi chạy lại lệnh cài đặt bên trên

Cài đặt Nginx Server sử dụng Let’s Encrypt

Để cài đặt Nginx tham khảo bài viết: Cài đặt Nginx Web Server

Sau khi cài đặt xong, chúng ta có một Web Server sử dụng Nginx, các bạn trỏ domain của bạn tới địa chỉ IP của Web Server. Lúc này Website của bạn chưa được cài đặt Let’s Encrypt nên chỉ sử dụng HTTP. Để sử dụng HTTPS chúng ta thực hiện các bước tiếp theo bên dưới.

Lấy certificate miễn phí cho Domain

Để lấy certificate cho tên miền, chúng ta sử dụng command sau:

sudo certbot --nginx -d test.vinasupport.com

Thay test.vinasupport.com thành tên miền của bạn.

Các bạn điền 1 số thông tin cần thiết như:

Kết quả: 

Cấu hình Nginx sử dụng Let’s Encrypt Certificate

Mặc định Let’s Encrypt sẽ thêm config cho website của bạn vào file /etc/nginx/site-available/default . Còn chưa có thì bạn hãy tư thêm config vào như sau:

server {

  # SSL configuration
  #
  # listen 443 ssl default_server;
  # listen [::]:443 ssl default_server;
  #
  # Note: You should disable gzip for SSL traffic.
  # See: https://bugs.debian.org/773332
  #
  # Read up on ssl_ciphers to ensure a secure configuration.
  # See: https://bugs.debian.org/765782
  #
  # Self signed certs generated by the ssl-cert package
  # Don't use them in a production server!
  #
  # include snippets/snakeoil.conf;

  root /var/www/html;

  # Add index.php to the list if you are using PHP
  index index.html index.htm index.nginx-debian.html;
        server_name test.vinasupport.com; # managed by Certbot


  location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ =404;
  }

  # pass PHP scripts to FastCGI server
  #
  #location ~ \.php$ {
  #	include snippets/fastcgi-php.conf;
  #
  #	# With php-fpm (or other unix sockets):
  #	fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
  #	# With php-cgi (or other tcp sockets):
  #	fastcgi_pass 127.0.0.1:9000;
  #}

  # deny access to .htaccess files, if Apache's document root
  # concurs with nginx's one
  #
  #location ~ /\.ht {
  #	deny all;
  #}

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/test.vinasupport.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/test.vinasupport.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server {
    if ($host = test.vinasupport.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80 ;
    listen [::]:80 ;
    server_name test.vinasupport.com;
    return 404; # managed by Certbot
}

Cuối cùng reload lại Nginx để nhận HTTPS

sudo systemctl reload nginx

Kết quả website của bạn đã có HTTPS với chứng chỉ số SSL miễn phí rồi đó.

Xóa chứng chỉ Let’s Encrypt

Để xóa chứng chỉ đã cấp chúng ta sử dụng command sau:

sudo certbot delete

Nguồn: vinasupport.com

 

 

 

             
SHARE

Bài viết liên quan

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web