Kích hoạt HTTPS cho blog cá nhân
Ngày cập nhật: 2023-01-29 | Lượt xem: 11028 | Số từ: 1149 | Phân loại: Tự xây dựng blog
HTTPS không chỉ là một tiêu chuẩn an toàn, mà còn là yếu tố quan trọng giúp tăng trải nghiệm người dùng và cải thiện thứ hạng tìm kiếm. Dưới đây là một số lý do chính khiến tôi quyết định chuyển đổi blog của mình sang giao thức HTTPS:
- Thử thách bản thân: Tôi chưa từng tự tay cấu hình chứng chỉ HTTPS trước đó, vì vậy đây là cơ hội để học hỏi và nâng cao kỹ năng.
- Bảo vệ dữ liệu: Việc sử dụng HTTPS giúp ngăn chặn tình trạng truy cập trái phép và đánh cắp thông tin giữa người dùng và website.
- Yêu cầu công nghệ: Một số nền tảng như WeChat Mini Program yêu cầu backend API phải hỗ trợ HTTPS.
- Tăng thứ hạng SEO: Google đã ưu tiên các trang web sử dụng HTTPS trong kết quả tìm kiếm, điều này cũng giúp blog có nhiều khả năng được tìm thấy hơn.
Nên đăng ký chứng chỉ HTTPS ở đâu?
Tôi chọn Let’s Encrypt – một tổ chức cấp chứng chỉ mã nguồn mở và hoàn toàn miễn phí. Đây là một Certificate Authority (CA) đáng tin cậy và phổ biến trên toàn thế giới. Với Let’s Encrypt, bạn có thể dễ dàng tạo và quản lý chứng chỉ SSL/TLS mà không mất bất kỳ khoản phí nào.
Website chính thức:
Cách cài đặt chứng chỉ HTTPS
Để đơn giản hóa quy trình cài đặt, tôi sử dụng Certbot – một công cụ client ACME mạnh mẽ và tự động hóa. Công cụ này không chỉ giúp tạo chứng chỉ mà còn tự động cập nhật chúng khi hết hạn, đồng thời không làm gián đoạn hoạt động của website.
Dưới đây là quá trình thực hiện trên hệ thống Ubuntu với Nginx:
|
|
Sau khi chạy lệnh trên, tôi truy cập lại địa chỉ www.sunzhongwei.com
, và thấy rằng mọi yêu cầu đều được chuyển hướng về ` Điều này cho thấy Certbot đã tự động sửa đổi cấu hình Nginx và khởi động lại dịch vụ thành công.
Lưu ý đối với Ubuntu 20.04: Nếu gặp lỗi “The requested nginx plugin does not appear to be installed”, hãy đảm bảo rằng bạn đã cài đặt plugin Nginx của Certbot bằng cách chạy:
|
|
Cơ chế hoạt động của Certbot
Khi kiểm tra lại tệp cấu hình Nginx, tôi thấy Certbot đã thêm vào những dòng sau cho miền tương ứng:
|
|
Những cấu hình này giúp máy chủ nhận yêu cầu HTTPS, xác thực bằng chứng chỉ và chuyển hướng tất cả lưu lượng HTTP sang HTTPS.
Vẫn chưa đạt mức an toàn tối đa
Mặc dù HTTPS đã được bật, nhưng khi truy cập qua Chrome, tôi vẫn thấy biểu tượng cảnh báo (!), thay vì khóa xanh quen thuộc. Nguyên nhân nằm ở CDN: tên miền CDN đang sử dụng giao thức HTTP thay vì HTTPS.
Vì vậy, tôi quyết định cập nhật lại thiết lập CDN trên Qiniu (QCloud).
Cấu hình chứng chỉ HTTPS cho CDN Qiniu
Quy trình đăng ký chứng chỉ trên Qiniu khá phức tạp. Họ yêu cầu tôi thêm một bản ghi TXT vào DNS, trong khi tôi đã có sẵn bản ghi CNAME. Điều này gây khó khăn trong việc xác minh tên miền. Thay vào đó, tôi chọn phương án khác: đăng ký chứng chỉ miễn phí từ Aliyun, nơi có quy trình nhanh chóng và dễ dàng hơn rất nhiều.
Aliyun xử lý yêu cầu của tôi trong vòng vài phút, không cần điền quá nhiều thông tin như Qiniu. Sau khi tải xuống tệp pem và key, tôi nhập nội dung vào phần chứng chỉ trên Qiniu. Chờ khoảng 10 phút, thiết lập sẽ được áp dụng.
Sửa đổi đường dẫn ảnh
Mặc dù Qiniu đã hỗ trợ HTTPS, nhưng nếu bạn chỉ chuyển hướng HTTP sang HTTPS thì trình duyệt vẫn coi đây là liên kết không an toàn. Vì vậy, tôi đã chỉnh sửa lại toàn bộ đường dẫn hình ảnh trong blog:
- Thay thế tất cả đường dẫn
thành
- Sử dụng Gravatar với giao thức HTTPS.
Tuy nhiên, tôi không thay đổi lại các ảnh trong Markdown vì tôi cho rằng hiệu quả mang lại không cao. Ví dụ, V2EX vẫn dùng hình ảnh HTTP từ Weibo và không bị ảnh hưởng đến SEO.
Hiệu quả đạt được
Sau khi hoàn tất, tôi đã thấy biểu tượng khóa xanh xuất hiện trên trình duyệt, cho thấy website đã được mã hóa hoàn toàn. Đây là bước tiến quan trọng để nâng cao độ tin cậy và trải nghiệm người dùng.
![Biểu tượng khóa xanh của HTTPS]
Thiết lập tự động gia hạn chứng chỉ
Certbot hỗ trợ tính năng tự động gia hạn chứng chỉ trước ngày hết hạn. Để kiểm tra xem chức năng này có hoạt động đúng hay không, bạn có thể chạy lệnh sau:
|
|
Đây là bước quan trọng để đảm bảo rằng blog của bạn luôn được bảo vệ mà không cần can thiệp thủ công.
Tài liệu
- Trang chính thức của Let’s Encrypt: