使用 HTTPS 保护 GitHub Pages 站点

HTTPS 增加一层加密,用于防止其他人窥探或篡改您的站点的流量。 您可对 GitHub Pages 站点强制实施 HTTPS,从而将所有 HTTP 请求透明地重定向到 HTTPS。

GitHub Pages 适用于具有 GitHub Free 和组织的 GitHub Free 的公共仓库,以及具有 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有仓库。 更多信息请参阅“GitHub 的产品”。

拥有仓库管理员权限的人可对 GitHub Pages 站点实施 HTTPS。

关于 HTTPS 和 GitHub Pages

所有 GitHub Pages 站点(包括使用自定义域正确配置的站点)均支持 HTTPS 和 HTTPS 强制实施。 有关自定义域的更多信息,请参阅“关于自定义域和 GitHub Pages”以及“自定义域和 GitHub Pages 疑难解答”。

GitHub Pages 站点不应该用于敏感事务,例如发送密码或信用卡号码。

警告:GitHub Pages 站点 默认在互联网上公开,即使站点的仓库是私有或内部的。 如果您的项目站点是从使用 GitHub Enterprise Cloud 的组织拥有的私有或内部仓库发布的,您可以管理站点的访问控制。 否则,如果 您的站点仓库中有敏感数据,则您可能要在发布前删除该数据。 更多信息请参阅“关于仓库可见性”和“更改 GitHub Pages 站点的可见性”。

对您的 GitHub Pages 站点强制实施 HTTPS

  1. 在 GitHub 上,导航到站点的仓库。

  2. 在仓库名称下,单击 Settings(设置)仓库设置按钮

  3. 在左侧边栏中,单击 Pages(页面)左侧边栏中的页面选项卡

  4. 在 "GitHub Pages" 下,选择 Enforce HTTPS(实施 HTTPS)强制实施 HTTPS 复选框

解决具有混合内容的问题

如果您对 GitHub Pages 站点启用了 HTTPS,但站点的 HTML 仍通过 HTTP 引用图像、CSS 或 JavaScript,则您的站点将提供混合内容。 提供混合内容可能会降低站点的安全性,并导致在加载资产时出现问题。

要删除站点的混合内容,请在站点的 HTML 中将 http:// 更改为 https://,确保所有资产都通过 HTTPS 提供。

资产通常位于以下位置:

  • 如果您的站点使用 Jekyll,则 HTML 文件可能位于 _layouts 文件夹中。
  • CSS 通常位于 HTML 文件的 <head> 部分。
  • JavaScript 通常位于 <head> 部分或结束 </body> 标记之前。
  • 图像通常位于 <body> 部分。

提示:如果您在站点的源文件中找不到您的资产,请尝试在文本编辑器或 GitHub 上搜索站点源文件中的 http

HTML 文件中引用的资产示例

前端资源类型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>
图像<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>

此文档对您有帮助吗?隐私政策

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。