============
== vtranq ==
============

How to Fix Let Encrypt Certificate Error

Vấn đề

  • Có rất nhiều website/app sử dụng free SSL certificate của Let’s Encrypt, mà SSL này là con của CA root DST Root CA X3
  • Ngày 30/10/2021 thì DST Root CA X3 hết hạn nên các website sử dụng SSL certificate của Let’s Encrypt sẽ bị báo lỗi
  • Let’s Encrypt đã xử lý vấn đề này từ lâu bằng cách thay DST Root CA X3 bằng CA root mới là ISRG Root X1. Nếu các máy tính / client có cài ISRG Root X1 này rồi thì sẽ không bị vấn đề gì với việc DST Root CA X3 bị hết hạn
  • Tuy nhiên, vấn đề ở đây là có nhiều máy tính không được cập nhật ISRG Root X1, ví dụ, do họ tắt chức năng Windows Update đi chẳng hạn. Khi đó các máy này sẽ bị báo lỗi invalid SSL certificate (vì các máy này không chấp nhận ISRG Root X1)

Giải pháp

  • Hoặc: các website này phải thay SSL certificate bằng một cái mới, thuộc một CA root nào đó mà các máy tính đang hỗ trợ
    • Ví dụ như thay bằng free SSL certificate cung cấp bởi ZeroSSL.com
  • Hoặc: cập nhật lại hệ điều hành / hoặc chạy Windows Update để hệ điều hành cập nhật thêm ISRG Root X1 vào hệ thống
  • Hoặc: tải ISRG Root X1 về và cập nhật bằng tay ISRG Root X1 vào hệ thống
  • Hoặc: sử dụng trình duyệt Firefox. Trình duyệt này đã tự động hỗ trợ ISRG Root X1 nên không bị lỗi invalid SSL certificate như trên

Hướng dẫn

Tạo SSL certificate với ZeroSSL.com

cd ~
git clone https://github.com/acmesh-official/acme.sh.git
cd ./acme.sh
./acme.sh --install -m myemail@example.com
(restart terminal)
acme.sh -h
  • Bước 3: tạo SSL certificate
(vào webroot của domain cần tạo SSL)
acme.sh --issue -d example.com -w .

hoặc:

acme.sh --issue --nginx -d example.com -d www.example.com

Nếu muốn debug thì thêm --debug 2 vào cuối các câu lệnh trên

  • Bước 4: gắn SSL certificate vừa tạo vào cấu hình nginx của website tương ứng, như ví dụ sau:
server {
	server_name example.com www.example.com;
    server_tokens off;
    index index.html;

    location / {
        root /space1/customers/example.com/www/hugo/public/;
    }

    listen   443;
    ssl    on;
    ssl_certificate        /root/.acme.sh/example.com/fullchain.cer;
    ssl_certificate_key    /root/.acme.sh/example.com/example.com.key;

    error_page 404 /404.html;
}
  • Bước 5: service nginx reload và kiểm tra trên browser xem certificate đã được cập nhật mới chưa

Cập nhật bằng tay ISRG Root X1

Active
   ISRG Root X1 (RSA 4096, O = Internet Security Research Group, CN = ISRG Root X1)
       Self-signed: der, pem, txt
  • Bước 3: install certificate này bằng cách nhấp đúp lên tập tin isrgrootx1.der. Sau đó chọn để install vào phần Trusted Root Certificates
  • Bước 4: Kiểm tra lại bằng certmgr.msc xem certificate ISRG Root X1 đã vào trong hệ thống chưa
  • Bước 5: Kiểm tra lại trên browser xem website còn bị lỗi certificate hay không