menu

Thêm SSL miễn phí cho trang web với Cloudflare

Đăng lúc 13/07/2017, trong chuyên mục Lập trình web

Bài viết hướng dẫn bạn đăng ký một SSL hoàn toàn miễn phí với Coudflare. Trang web của bạn sẽ có https thay vì http. Bài viết tập trung vào với trang web Jekyll/Github Pages.

Ở đây, tôi giả sử bạn đã biết sử dụng custom domain dành cho trang web Jekyll/Github Pages, domain của bạn có dạng http://tencuaban.com (không có s sau http)

Thiết lập trên Cloudflare

  1. Tạo một tài khoản Cloudflare. Nhớ xác nhận tài khoản thông qua email nhé.
  2. Điền domain trang web của bạn vào rồi nhấn Begin Scan, không cần phải nhấn thêm www.
  3. Để có thể sử dụng Cloudflare, bạn cần để cho Cloudflare quản lý DNS domain của bạn. Giả sử bạn đang quản lý domain trên Godaddy thì bạn cần sửa lại cái NameServer (NS) trong mục sửa DNS của Godaddy sang Cloudflare như sau (nhớ backup và ghi chú lại những mục đã làm trên Godaddy để phòng trường hợp nó không tự động chuyển qua Cloudflare)
    • Type: NS, Value: kate.ns.cloudflare.com
    • Type: NS, Value: vin.ns.cloudflare.com
  4. Kể từ đây, để có thể quản lý DNS của domain này, bạn phải vào Cloudflare.
  5. Làm theo các bước tiếp theo trên Cloudflare để hoàn tất quá trình thiết lập domain.
  6. Vào Dashboard
  7. Mở Cloudflare Settings với domain bạn vừa đăng ký và set SSL Setting sang Flexible SSL. Điều này sẽ giúp cho các subdomain của trang web cũng có ssl, ví dụ https://blog.tencuaban.com.
  8. Đợi vài giờ (có khi cả ngày) để thấy tác dụng.

Bạn cần chỉnh thêm một số thứ

  1. Sau khi đăng nhập vào Cloudflare, bạn chọn Crypto để đến mục quản lý SSL
  2. Nhấn vào chữ flexible để mở SSL settings
  3. Tại mục Always use HTTPS, bạn chọn ON
  4. HTTP Strict Transport Security (HSTS) bạn cũng chọn On
  5. Tương tự cho Automatic HTTPS Rewrites

Làm cho các bộ máy tìm kiếm biết đến

Bạn mới chỉnh sửa domain chính, giờ là lúc để Google, Bing biết rằng trang web của bạn đã có s.

Trong file _config.yml, bạn thêm/sửa các dòng sau

url: https://www.tencuaban.com #có "s" phía sau "http"
enforce_ssl: www.tencuaban.com 

Đảm bảo rằng trong thẻ <head> có dòng sau

<link rel="canonical" href=" { { site.url } }{ { page.url } }" />

Thêm dòng sau vào <head> nếu bạn muốn redirect tất cả các link http sang https

<script type="text/javascript">
    var host = "yoursite.com";
    if ((host == window.location.host) && (window.location.protocol != "https:"))
        window.location.protocol = "https";
</script>

Bước quan trọng, hãy đảm bảo tất cả các link có liên quan đến protocol http phải chuyển sang https hết. Tốt nhất là bạn không dùng đến protocol này, ví dụ

<!-- cái cũ -->
<link rel="stylesheet" href="http://www.somesite.com/path/to/styles.css">

<!-- chuyển sang cái mới này (không dùng http hay https) -->
<link rel="stylesheet" href="//www.somesite.com/path/to/styles.css">
lập trình web
ssl
domain
jekyll
github pages
Top