Skip to main content

Bảo mật trang GitHub Pages của bạn bằng HTTPS - GitHub Docs

Những người có quyền quản trị kho lưu trữ có thể áp dụng HTTPS cho trang GitHub Pages.

Giới thiệu về HTTPS và GitHub Pages

Tất cả các trang GitHub Pages, bao gồm các trang được cấu hình đúng với tên miền tùy chỉnh, đều hỗ trợ HTTPS và thực thi HTTPS. Để biết thêm thông tin về tên miền tùy chỉnh, hãy xem " Giới thiệu về tên miền tùy chỉnh và GitHub Pages " và " Khắc phục sự cố tên miền tùy chỉnh và GitHub Pages ".

Không nên sử dụng các trang GitHub Pages cho các giao dịch nhạy cảm như gửi mật khẩu hoặc số thẻ tín dụng.

Cảnh báo : Các trang GitHub Pages có sẵn công khai trên internet, ngay cả khi kho lưu trữ của trang web là riêng tư (nếu kế hoạch hoặc tổ chức của bạn cho phép). Nếu bạn có dữ liệu nhạy cảm trong kho lưu trữ của trang web, bạn có thể muốn xóa dữ liệu trước khi xuất bản. Để biết thêm thông tin, hãy xem " Giới thiệu về kho lưu trữ ".

Lưu ý: RFC3280 quy định rằng độ dài tối đa của tên chung phải là 64 ký tự. Do đó, toàn bộ tên miền của trang GitHub Pages của bạn phải có độ dài dưới 64 ký tự để chứng chỉ được tạo thành công.

Thực thi HTTPS cho trang GitHub Pages của bạn

  1. Trên GitHub, hãy điều hướng đến kho lưu trữ của trang web bạn.

  2. Dưới tên kho lưu trữ của bạn, hãy nhấp vào Cài đặt . Nếu bạn không thấy tab "Cài đặt", hãy chọn menu thả xuống, sau đó nhấp vào Cài đặt .

    Ảnh chụp màn hình tiêu đề kho lưu trữ hiển thị các tab. Tab "Cài đặt" được tô sáng bằng đường viền màu cam đậm.

  3. Trong phần "Mã và tự động hóa" của thanh bên, hãy nhấp vào Trang .

  4. Trong "Trang GitHub", hãy chọn Thực thi HTTPS .

Khắc phục sự cố cung cấp chứng chỉ (lỗi "Chứng chỉ chưa được tạo")

Khi bạn đặt hoặc thay đổi tên miền tùy chỉnh của mình trong cài đặt Pages, một kiểm tra DNS tự động sẽ bắt đầu. Kiểm tra này xác định xem cài đặt DNS của bạn có được định cấu hình để cho phép GitHub tự động lấy chứng chỉ hay không. Nếu kiểm tra thành công, GitHub sẽ xếp hàng một công việc để yêu cầu chứng chỉ TLS từ Let's Encrypt . Khi nhận được chứng chỉ hợp lệ, GitHub sẽ tự động tải chứng chỉ đó lên các máy chủ xử lý việc chấm dứt TLS cho Pages. Khi quá trình này hoàn tất thành công, một dấu kiểm sẽ hiển thị bên cạnh tên miền tùy chỉnh của bạn.

Quá trình này có thể mất một thời gian. Nếu quá trình này chưa hoàn tất sau vài phút kể từ khi bạn nhấp vào Lưu , hãy thử nhấp vào Xóa bên cạnh tên miền tùy chỉnh của bạn. Nhập lại tên miền và nhấp vào Lưu một lần nữa. Thao tác này sẽ hủy và khởi động lại quá trình cung cấp.

Giải quyết vấn đề với nội dung hỗn hợp

Nếu bạn bật HTTPS cho trang GitHub Pages của mình nhưng HTML của trang vẫn tham chiếu đến hình ảnh, CSS hoặc JavaScript qua HTTP thì trang của bạn đang phục vụ nội dung hỗn hợp . Việc phục vụ nội dung hỗn hợp có thể khiến trang của bạn kém an toàn hơn và gây ra sự cố khi tải tài sản.

Để xóa nội dung hỗn hợp trên trang web của bạn, hãy đảm bảo tất cả nội dung của bạn được cung cấp qua HTTPS bằng cách thay đổi http://thành https://trong HTML của trang web.

Tài sản thường được tìm thấy ở những địa điểm sau:

  • Nếu trang web của bạn sử dụng Jekyll, các tệp HTML của bạn có thể sẽ nằm trong thư mục _ layouts .
  • CSS thường nằm trong <head>phần tệp HTML của bạn.
  • JavaScript thường nằm trong <head>phần hoặc ngay trước </body>thẻ đóng.
  • Hình ảnh thường được tìm thấy trong <body>phần này.

Mẹo: Nếu bạn không tìm thấy nội dung trong các tệp nguồn của trang web, hãy thử tìm kiếm httptrong trình soạn thảo văn bản hoặc trên GitHub.

Ví dụ về tài sản được tham chiếu trong tệp HTML

Loại tài sảnGiao thức HTTPHTTPS
CSS<link rel="stylesheet" href="http://example.com/css/main.css"><link rel="stylesheet" href="https://example.com/css/main.css">
JavaScript<script type="text/javascript" src="http://example.com/js/main.js"></script><script type="text/javascript" src="https://example.com/js/main.js"></script>
Hình ảnh<a href="http://www.somesite.com"><img src="http://www.example.com/logo.jpg" alt="Logo"></a><a href="https://www.somesite.com"><img src="https://www.example.com/logo.jpg" alt="Logo"></a>

Xác minh cấu hình DNS

Trong một số trường hợp, chứng chỉ HTTPS sẽ không thể được tạo do cấu hình DNS của tên miền tùy chỉnh của bạn. Điều này có thể do các bản ghi DNS bổ sung hoặc các bản ghi không trỏ đến địa chỉ IP cho GitHub Pages.

Để đảm bảo chứng chỉ HTTPS được tạo đúng cách, chúng tôi khuyên bạn nên cấu hình như sau. Bất kỳ bản ghi A, AAAA, ALIAS, bổ sung nào ANAMEvới @máy chủ hoặc CNAMEbản ghi trỏ đến wwwtên miền phụ của bạn hoặc tên miền phụ tùy chỉnh khác mà bạn muốn sử dụng với GitHub Pages có thể ngăn chứng chỉ HTTPS được tạo.

Kịch bảnLoại bản ghi DNSTên bản ghi DNSGiá trị bản ghi DNS
Miền đỉnh
( example.com)A@185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
Miền đỉnh
( example.com)AAAA@2606:50c0:8000::153
2606:50c0:8001::153
2606:50c0:8002::153
2606:50c0:8003::153
Miền đỉnh
( example.com)ALIAShoặcANAME@USERNAME.github.iohoặc
ORGANIZATION.github.io
Tên miền phụ
( www.example.com,
blog.example.com)CNAMESUBDOMAIN.example.com.USERNAME.github.iohoặc
ORGANIZATION.github.io