Sử dụng SSL cho website sẽ mang lại nhiều lợi ích như bảo mật, cải thiện xếp hạng SEO. Bài viết này sẽ hướng dẫn cài SSL free của Cloudflare cho website WordPress.

Giới thiệu

Để website có thể chạy ở HTTPS, bạn cần phải cài đặt SSL cho webserver. Có nhiều lợi ích cho một trang web chạy HTTPS như là bảo mật dữ liệu được truyền đi giữa máy chủ và máy khách. Google cũng nói rằng họ sẽ tăng xếp hạng nhẹ cho những website chạy HTTPS. Và người dùng sẽ tin tưởng website của bạn nhiều hơn khi họ nhìn thấy website có Bảo mật trên trình duyệt. Hiện tại trên trình duyệt Google Chrome phiên bản 68, toàn bộ các trang web không cài đặt HTTPS đã hiển thị là Không bảo mật.

Nếu bạn có kinh phí, bạn có thể mua một chứng chỉ SSL giả rẻ từ Namecheap hoặc từ các nhà cung cấp chứng chỉ SSL khác. Hoặc sử dụng SSL miễn phí của Let’s Encrypt, các nhà cung cấp hosting bảo rằng họ miễn phí SSL, có thể họ đang sử dụng Let’s Encrypt cho bạn. Chỉ cần mua một chứng chỉ SSL hoặc tạo chứng chỉ SSL miễn phí với Let’s Encrypt, sau đó cài đặt SSL cho webserver Nginx, Apache và cPanel, vậy là bạn đã có thể chạy website của bạn qua phiên bản HTTPS.

Ở bài viết này, tôi muốn giới thiệu một nhà cung cấp SSL miễn phí, đó là Cloudflare. Nếu bạn đang sử dụng CDN free của họ, bạn có thể dễ dàng cài SSL cho website WordPress, Blogger và cho tất cả các nền tảng khác.

Ưu điểm khi sử dụng SSL free của Cloudflare là bạn không cần phải có SSL trên webserver và host. Bạn cũng không cần phải mở cổng 443 trên webserver của bạn. Chỉ cần thực hiện một số thao tác trên Cloudflare để cài SSL và thay đổi các thiết lập liên quan khác.

SSL Free của Cloudflare
SSL Free của Cloudflare được cấp cho tên miền phụ của cloudflaressl.com.

Lưu ý:

  • Một số ý kiến cho rằng vì giải mã (và sau đó mã hóa) đang xảy ra trong chính CloudFlare thì họ sẽ có quyền truy cập vào dữ liệu giữa người dùng và máy chủ gốc, điều này không thể chấp nhận được. Trong một số trường hợp, điều đó có thể đúng, nhưng nếu bạn không muốn tốn kém chi phí để mua chứng chỉ SSL và bạn muốn đơn giản thì Cloudflare là một lựa chọn.
  • Cloudflare Dedicated CertificatesUniversal SSL chỉ hỗ trợ các trình duyệt trên Windows Vista hoặc OS X 10.6 hoặc mới hơn, không hỗ trợ Windows XP và không hỗ trợ trình duyệt IE 6. Trên di động, Mobile Safari for iOS 4.0, Android 3.0 (Honeycomb) và mới hơn, Windows Phone 7.

Cài SSL free của Cloudflare

Để cài SSL free của Cloudflare, tất nhiên là bạn cần phải đăng ký sử dụng dịch vụ của họ, đăng ký ở đây. Sau đó Add Site và đổi Name Server cho domain sang Name Server mà Cloudflare cung cấp. Đối với WordPress, bạn nên cài plugin Cloudflare trước.

Ở mục DNS, xin hãy bật biểu tượng đám mây màu vàng để sử dụng CDN của Cloudflare. Nếu biểu tượng này màu xám, có nghĩa là bạn đang tắt CDN của Cloudflare và chỉ sử dụng nó như một dịch vụ DNS thông thường.

Cloudflare DNS

Chuyển sang mục Crypto, đây là nơi mà bạn có thể lựa chọn kiểu SSL cho trang web của bạn. Ở mục SSL, bạn có 4 tùy chọn như sau, tất cả đều miễn phí:

Hướng dẫn cài SSL free của Cloudflare cho website WordPress

  • Off: tắt SSL.
    Không có khách truy cập nào có thể xem trang web của bạn qua HTTPS; chúng sẽ được chuyển hướng sang HTTP.
  • Flexible: linh hoạt.
    Bạn không thể định cấu hình hỗ trợ HTTPS về máy chủ gốc của mình, ngay cả với chứng chỉ không hợp lệ cho trang web của bạn. Khách truy cập sẽ có thể truy cập trang web của bạn qua HTTPS nhưng kết nối với máy chủ gốc của bạn sẽ được thực hiện qua HTTP. Lưu ý: Bạn có thể gặp phải vòng lặp chuyển hướng với một số cấu hình gốc.

    • Dù trên webserver hoặc host của bạn có cài đặt SSL hay không, Cloudflare luôn gửi yêu cầu đến máy chủ của bạn qua HTTP (cổng 80). Nếu bạn không cài SSL trên máy chủ của bạn, tùy chọn này là phù hợp.
    • Dữ liệu chỉ được mã hóa giữa người dùng và máy chủ Cloudflare, Cloudflare sẽ gửi các dữ liệu không được mã hóa đến máy chủ gốc của bạn. Điều này thật sự không an toàn.
    • Đối với WordPress, bạn nên cài plugin Cloudflare để tránh vòng lặp chuyển hướng.
      This we has a redirect loop
      The page isn't redirecting properly
      ERR_TOO_MANY_REDIRECTS
    • Nếu trình duyệt không hiển thị nút Bảo mật màu xanh và kèm theo các thông báo như sau, điều này có nghĩa là website của bạn chạy HTTPS, nhưng các thành phần lại chạy HTTP. Chỉ cần thay thế các hình ảnh, javascript và css… sang HTTPS. Đối với WordPress, cài plugin SSL Insecure Content Fixer để sửa lỗi này. Hoặc bật tùy chọn Automatic HTTPS Rewrites ở dưới, tự động viết lại HTTPS giúp sửa nội dung hỗn hợp bằng cách thay đổi “http” thành “https” cho tất cả các tài nguyên hoặc liên kết trên trang web của bạn có thể được phân phát bằng HTTPS..
      Mixed Content: The page at 'https://www.sitecuaban.com' was loaded over HTTPS, but requested an insecure image. This content should also be served over HTTPS.
    • Đừng chuyển hướng HTTP sang HTTPS trong máy chủ gốc của bạn. Cloudflare cần gửi yêu cầu đến máy chủ gốc qua HTTP. Chúng ta sẽ chuyển hướng HTTP sang HTTPS trực tiếp trên Cloudflare.
    • Sau khi mọi thứ đã hoạt động đúng cách, bạn có thể thay đổi URL trong wp-admin từ http sang https.
  • Full: đầy đủ.
    Máy chủ gốc của bạn hỗ trợ HTTPS, nhưng chứng chỉ được cài đặt không khớp với miền của bạn hoặc tự ký (self-signed). Cloudflare sẽ kết nối với máy chủ gốc của bạn qua HTTPS nhưng sẽ không xác thực chứng chỉ. Cloudflare sẽ luôn gửi yêu cầu đến máy chủ của bạn qua HTTPS (cổng 443).
  • Full (strict): đẩy đủ và xác minh nghiêm ngặt.
    • Máy chủ gốc của bạn cần phải có chứng chỉ SSL hợp lệ (chưa hết hạn và được ký bởi CA đáng tin cậy hoặc Cloudflare Origin CA) được cài đặt. Cloudflare sẽ kết nối qua HTTPS và xác minh chứng chỉ trên mỗi yêu cầu.
    • Dữ liệu sẽ được giải mã và mã hóa lại một lần nữa tại máy chủ Cloudflare, sau đó gửi đến máy chủ gốc. Sau khi nhận được dữ liệu được mã hóa từ máy chủ gốc, dữ liệu sẽ được giải mã và mã hóa lại một lần nữa tại máy chủ Cloudflare, sau đó trả về cho trình duyệt.

Xin lưu ý rằng dù cho máy chủ của bạn đã cài một chứng chỉ SSL được ký bởi Comodo hay bất cứ một CA nào khác thì chứng chỉ đó cũng sẽ bị thay thế bởi chứng chỉ của Cloudflare. Trừ khi bạn tải chứng chỉ đó lên Cloudflare, mà tùy chọn này chỉ được hỗ trợ trong các gói Business (200 USD mỗi tháng) và Enterprise. Nếu bạn lựa chọn Full hoặc Full (strict) thì Cloudflare sẽ gửi yêu cầu đến máy chủ gốc của bạn qua HTTPS (cổng 443) và nó sẽ luôn xác thực chứng chỉ SSL nếu bạn chọn Full (strict). Nếu chọn Flexible thì chúng ta không cần phải cài SSL trên máy chủ gốc, tôi đã không cần phải tốn tiền mua SSL hay cài SSL free của Let’s Encrypt cho Site của tui. Hãy đưa ra sự lựa chọn phù hợp cho máy chủ gốc của bạn.

SSL cho subdomain

Cách bật SSL ở trên áp dụng cho tất cả domain và subdomain mà bạn đã bật CDN (biểu tượng đám mây màu vàng). Nếu bạn muốn sử dụng nhiều loại chứng chỉ SSL khác nhau cho những tập hơn URL khác nhau, bạn có thể tạo Page Rules để làm điều này. Ví dụ, bạn đã có một Extended Validation Certificate (EV) hoặc bất kỳ chứng chỉ SSL nào đó mà bạn đã mua cho tên miền chính của bạn, và bạn không muốn sử dụng SSL miễn phí của Cloudflare. Nhưng bạn vẫn muốn sử dụng CDN của nó để cache các tệp tin tĩnh như hình ảnh, js, css… bạn có thể xem xét sử dụng CDN free qua subdomain.

  1. Tắt CDN cho các domain và subdomain mà bạn không muốn sử dụng SSL và CDN free của Cloudflare. Ở mục DNS, chỉ cần chuyển biểu tượng đám mây thành màu xám. Bây giờ người truy cập có thể trực tiếp nhìn thấy thông tin chứng chỉ SSL mà bạn đã cài đặt trên máy chủ của bạn.
  2. Tạo Page Rules nếu bạn muốn sử dụng nhiều loại chứng chỉ SSL khác nhau cho những tập hơn URL khác nhau. Ví dụ ở đây tôi sẽ tạo quy tắc để sử dụng Flexible SSL cho subdomain static.sitecuatui.com, tôi có thể tạo thêm quy tắc tắt SSL (Off) cho các domain khác. Xem thêm ở mục Chuyển hướng HTTP sang HTTPS để biết cách tạo Page Rules cho các nhóm URL.
    Bật SSL Cloudflare

Chuyển hướng HTTP sang HTTPS

Một website có thể có nhiều phiên bản, hoặc HTTP, hoặc HTTPS, hoặc có WWW và không WWW hoặc tất cả. Goolge khuyến khích chúng ta nên thống nhất sử dụng một phiên bản duy nhất. Bạn nên chuyển hướng tất cả các phiên bản sang phiên bản mà bạn và người dùng ưa thích nhất. Site của tui hiện tại đang sử dụng tên miền có www và https.

Sau khi cài SSL free của Cloudflare cho website, nếu bạn quyết định muốn sử dụng HTTPS, bạn nên chuyển hướng HTTP sang HTTPS. Chúng ta sẽ làm điều này ngay trên Cloudflare mà không cần đến .htaccess hoặc cấu hình cho máy chủ gốc.

Nếu bạn muốn chuyển hướng tất cả các liên kết, chỉ cần bật tùy chọn Always use HTTPS sang ON. Cloudflare sẽ trả lời tất cả các yêu cầu cho URL sử dụng “http” với chuyển hướng 301 đến URL “https” tương đương.

Cloudflare Always use HTTPS

Nếu bạn chỉ muốn chuyển hướng cho một tập hợp con các yêu cầu, hãy xem xét tạo quy tắc trang “Always Use HTTPS”. Truy cập vào mục Page Rules, nhấn nút Create Page Rule để tạo quy tắc mới.

Chuyển hướng HTTP sang HTTPS trên Cloudflare

Nhập URL mà bạn muốn chuyển HTTP sang HTTPS. Dưới đây là một số trường hợp:

  • Chuyển từ HTTP sang HTTPS thì nhập http://.
  • Tên miền không có www:
    http://sitecuaban.com/*
  • Tên miền có www:
    http://www.sitecuaban.com/*
  • Tất cả subdomain (tên miền phụ), bao gồm cả www:
    http://*.sitecuaban.com/*

Ở mục Then the settings are, chọn Always Use HTTPS. Nhấn nút Save and Deploy để tạo quy tắc.

HTTP Strict Transport Security (HSTS)

Bạn có thể thay đổi toàn bộ các thiết lập SSL free của Cloudflare ở mục Crypto. Chúng ta có thể thay đổi các thiết lập ở mục HTTP Strict Transport Security (HSTS) để nâng cao bảo mật cho website sử dụng HTTPS. Nếu HSTS được bật, máy chủ sẽ gửi một tiêu đề (header) strict-transport-security với các thiết lập, nó yêu cầu trình duyệt web luôn luôn chuyển hướng website qua HTTPS trong thời hạn quy định. Nếu trong tương lai bạn không còn sử dụng HTTPS nữa, trình duyệt này vẫn chuyển hướng website sang HTTPS cho đến khi hết hạn. Vì vậy, chỉ sử dụng HTTP Strict Transport Security nếu bạn chắc chắn website của bạn hỗ trợ HTTPS cho đến hết thời hạn mà bạn sẽ chỉ định. Nếu website của bạn không còn hỗ trợ HTTPS mà trình duyệt nó cứ chuyển hướng sang HTTPS thì chắc bạn sẽ buồn lắm.

Nhấn vào nút Change HSTS Settings, tại đây sẽ có các thông tin về HSTS, tích vào ô I understand và nhấn Next để tiếp tục.

  • Enable HSTS (Strict-Transport-Security): bật HSTS.
  • Max Age Header (max-age): chỉ định thời hạn các tiêu đề HSTS được lưu trong trình duyệt.
    • Trong suốt thời gian này, HSTS sẽ có hiệu lực, bất chấp website của bạn không còn hỗ trợ HTTPS hoặc ngay cả khi bỏ tiêu đề HSTS này. Website của bạn sẽ luôn chuyển hướng về HTTPS trong thời gian này, chỉ áp dụng trên các trình duyệt mà trước đó đã truy cập vào trang web và nhận được giá trị này.
    • Khuyến nghị cho 6 tháng.
  • Apply HSTS policy to subdomains (includeSubDomains): áp dụng cho cả tên miền phụ (subdomain). Nếu các tên miền phụ của bạn không hỗ trợ HTTPS, đừng bật tùy chọn này.
  • Preload: cho phép các trình duyệt tự động tải trước cấu hình HSTS.
    • Nếu bạn muốn thêm website của bạn vào danh sách HSTS Preload, giá trị này được yêu cầu.
    • Danh sách các website sẽ được tích hợp vào trình duyệt, trình duyệt sẽ tự động thực hiện HSTS cho các website có trong danh sách này.
    • max-age phải có giá trị ít nhất là 1 năm.

Nhấn nút Save để các thay đổi có hiệu lực.

Cuối cùng, xin cám ơn Cloudflare đã cung cấp một dịch tốt, chúng ta có thể vừa sử dụng CDN và cài SSL qua các bước đơn giản nhất. Chúc bạn thành công!

Tham gia cuộc thảo luận

5 Bình luậ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 *

    1. Cloudflare trên cPanel là dùng API, theo mình truy cập được trực tiếp vào Cloudflare chính thức thì sẽ tốt hơn.

  1. Chào bạn, không liên quan đến bài viết nhưng bạn có thể hướng dẫn mình cách hiển thị thông báo khi người dùng sử dụng adblock giống trang bạn được không.

    Mình nghĩ là cần có nhiều trang web hiển thị thông báo như vậy nữa để người dùng hiểu hơn về các blogger chân chính như anh em mình.

    Cám ơn bạn.