Cài đặt chứng chỉ ssl miễn phí cho website trên VPS CentOS 7,8

cai-dat-chung-chi-ssl-mien-phi

Cài đặt chứng chỉ ssl miễn phí. Hiện nay hầu hết các trang web đều đã hỗ trợ SSL (Secure Socket Layer). Nó mã hóa dữ liệu truyền đi giữa máy chủ web và trình duyệt và làm tăng tính bảo mật cho website. Ngoài ra, việc sử dụng SSL certificate (chứng chỉ SSL) là cần thiết bởi hiện tại Google đã ưu tiên xếp hạng website dựa theo giao thức https (HTTP + SSL), những website mà chỉ sử dụng giao thức http sẽ bị coi là “unsafe” (không an toàn). Để cài đặt chứng chỉ ssl miễn phí cho site trên VPS/Server ta có 2 cách:

  • Sử dụng chứng chỉ của Let’s Encrypt
  • Sử dụng chứng chỉ của CloudFlare

Trong bài viết này. UpForShare chia sẻ 2 cách cài đặt chứng chỉ ssl miễn phí được sử dụng phổ biến nhất trên thế giới. Minh hoạ trên VPS CentOS 7, 8, các hệ điều hành khác tương tự.

Cài đặt chứng chỉ ssl miễn phí Let’s Encrypt

Let’s Encrypt là một nhà cung cấp chứng chỉ số SSL (Certificate Authority) hoàn toàn miễn phí nhằm cung cấp chứng nhận SSL cho cộng đồng nói chung. Let’s Encrypt được tài trợ bởi nhiều công ty bao gồm Google, Facebook, Sucuri, Mozilla, Cisco, v.v… chúng ta sẽ sử dụng Certbot auto.

Cài đặt SSL miễn phí với Certbot auto

cai-dat-chung-chi-ssl-mien-phi Trước tiên, bạn truy cập vào:

Tại mục: My HTTP website is running các bạn chọn loại web server và hệ điều hành tương ứng mà bạn đang sử dụng. Ví dụ ở đây tôi chạy OpenLiteSpeed trên CentOS 7 thì sẽ chọn như sau: certbot-auto Cuộn trang xuống dưới certbot.eff.org sẽ có hướng dẫn chi tiết các bước cài đặt: Để chuẩn bị cài đặt certbot, bạn cần quyền root và login SSH vào VPS, tất nhiên rồi, mặt khác VPS của bạn phải cài đặt sẵn EPEL (Extra Packages for Enterprise Linux) repository như bài này đã hướng dẫn. Tiếp theo, cài đặt một số thư viện bổ sung

Cài đặt certbot:

Quá trình cài đặt thành công, bạn sử dụng lệnh sau để cài đặt chứng chỉ ssl cho website mà không làm ảnh hưởng gì tới website đang vận hành:

Ở lần đầu tiên xác minh, certbot sẽ hỏi bạn điền email để xác thực và nhận các thông báo. Sau đó certbot sẽ yêu cầu bạn nhập domain muốn cài ssl. Bạn nhập vào các domain muốn cài SSL. Ví dụ: domain-cua-ban.comwww.domain-cua-ban.com Kế tiếp, certbot yêu cầu bạn nhập đường dẫn thư mục gốc của website (webroot), bạn dán vào nhé (chính là đường dẫn thư mục đến file index). Done. Certbot sẽ auto làm hết cho bạn, đến khi xuất hiện thông báo có dạng:

Là bạn đã cài đặt thành công. Hãy lưu lại vị trí các file chứng chỉ /etc/letsencrypt/live/… để phục vụ cấu hình SSL trên web server. Nếu là OpenLiteSpeed thì bạn dán vị trí 2 tệp chứng chỉ đó vào đây: ssl-openlitespeed Cấu hình thêm SSL Protocol và Security, thiết lập Rewrite Rules để chuyển hướng www về non-www và http về https như sau:

Đừng quên thay domain-cua-ban nhé 🙂 Như thế là url website của bạn đã có khoá bảo mật https Bây giờ chạy crontab cho nó tự động check và gia hạn chứng chỉ: Crontab Renew SSL của Certbot

Tuy nhiên, nếu crontab theo hướng dẫn trên của certbot không hoạt động trên VPS/Server của bạn thì cũng đừng lo lắng. Hãy thử Crontab Renew SSL của Upforshare như dưới đây: 0 9 * * * certbot renew --post-hook "/usr/local/lsws/bin/lswsctrl restart" >> /var/log/lich-su-gia-han-certbot.log Trong đó: 0 9 * * * là để chạy lệnh gia hạn vào 9h sáng hàng ngày, đổi lại nếu bạn thích. Lưu ý đổi múi giờ hệ thống của máy chủ "/usr/local/lsws/bin/lswsctrl restart" là để khởi động lại web server của bạn, ở đây là OpenLiteSpeed, nếu bạn chạy nginx hay apache… thì hãy thay thế cho phù hợp. >> /var/log/lich-su-gia-han-certbot.log để tạo file log ghi lại lịch sử gia hạn ssl, bạn có thể bỏ qua đoạn này.

Cài đặt ssl và khắc phục vấn đề downtime khi chuyển website sử dụng SSL Let’s Encrypt

Nhận chứng chỉ Let’s Encrypt không cần trỏ tên miền Thay vì cài đặt theo tab Default, hãy chuyển sang tab Wildcard để xác thực tên miền bằng DNS Challenge (sử dụng Cloudflare, không sử dụng ip nên không sợ downtime khi trỏ domain sang ip mới, không sợ bị khoá HSTS) Thực hiện từ bước 1 đến bước 6 như hướng dẫn của certbot. Tạo file cấu hình *.ini của Cloudflare như sau:

Nên đặt tên file này bằng tên email Cloudflare luôn cho tiện quản lý, lưu tại 1 thư mục ẩn trên root: Ví dụ: /root/.cloudflare/tenemail.ini Chmod thư mục ẩn này về 400 để đảm bảo an toàn: chmod 400 -R /root/.cloudflare/ Câu lệnh cài đặt chứng chỉ ssl miễn phí và xác thực chứng chỉ SSL tự động:

Xem thêm hướng dẫn tại đây: https://certbot-dns-cloudflare.readthedocs.io/en/stable/ Cài đặt crontab gia hạn tự động tương tự như trên.

Lựa chọn thứ 2, sử dụng chứng chỉ SSL của CloudFlare

Để sử dụng chứng chỉ ssl miễn phí của CloudFlare, bạn bắt buộc phải bật đám mây vàng, proxy cho domain trên CloudFlare. Sau đó tạo chứng chỉ trong phần SSL/TSL như hình dưới: cai-dat-chung-chi-ssl-mien-phi-cloudflare Cửa sổ Origin Certificate Installation hiện ra, bạn chọn Generate private key and CSR with Cloudflare RSA 2048. Kiểm tra lại phần List the hostnames… Certificate Validity 15 years và bấm Create.

Origin-Certificate-Installation

Cloudflare sẽ cung cấp cho bạn 2 đoạn mã chứng chỉ server, bạn copy nội dung và dán vào 2 file chứng chỉ tương ứng, ví dụ:

  • Nội dung trong Private Key dán vào file Domain-cua-ban.key
  • Nội dung trong Origin Certificate dán vào file Domain-cua-ban.pem

Bước tiếp theo bạn dùng 2 file chứng chỉ ssl này và cài đặt lên web server bạn đang chạy giống như với Let’s Encrypt. Đã cài chứng chỉ ssl miễn phí của CloudFlare 15 năm thì bạn không cần phải nghĩ đến việc gia hạn làm gì nữa! Tốc độ và tính tương thích của chứng chỉ SSL CloudFlare có phần tốt hơn Let’s Encrypt, bạn hãy trải nghiệm và đưa ra đánh giá nhé.

Tạo Page Rules để cache file tĩnh bằng CF

Đối với các trang dùng WordPress tôi thường sử dụng 2 rule bên dưới để cache các file tĩnh dạng html, js, css, images …

  1. https://upforshare.com/wp-content/cache/* Cache Level: Bypass
  2. https://upforshare.com/wp-content/* Cache Level: Cache Everything

page-rules-cloudflare

page-rules2

Kết quả sau khi thêm 2 rules trên sẽ được như sau:

page-rules3

…đang cập nhật

Nguồn: UpForShare.com tổng hợp và biên soạn.

5/5 - (4 votes)

2 thoughts on “Cài đặt chứng chỉ ssl miễn phí cho website trên VPS CentOS 7,8

  1. Phần mềm Cơ Sở Dữ Liệu Giá says:

    Gần như tất cả site của mình hiện nay đề sử dụng SSL Let’s encrypt và Cloudflare rất nhanh và tiện

Leave a Reply

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