Skip to main content

此版本的 GitHub Enterprise 已停止服务 2022-09-28. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

配置 TLS

你可以在 your GitHub Enterprise Server instance 上配置传输层安全性 (TLS),以便使用由可信证书颁发机构签名的证书。

关于传输层安全

当 GitHub Enterprise Server 首次启动时,会启用 TLS(替代了 SSL)并通过自签名证书进行配置。 由于自签名证书不受 Web 浏览器和 Git 客户端的信任,因此这些客户端将报告证书警告,直至您禁用 TLS 或上传由 Let's Encrypt 等可信颁发机构签名的证书。

GitHub Enterprise Server 设备将在 SSL 启用时发送 HTTP 严格传输安全标头。 禁用 TLS 会导致用户无法访问设备,因为用户的浏览器将不允许协议降级为 HTTP。 有关详细信息,请参阅维基百科上的“HTTP 严格传输安全 (HSTS)”。

警告:在负载均衡器上终止 HTTPS 连接时,从负载均衡器到 GitHub Enterprise Server 的请求也需要使用 HTTPS。 不支持降级到 HTTP 连接。

要允许用户使用 FIDO U2F 进行双重身份验证,您必须为实例启用 TLS。 有关详细信息,请参阅“配置双因素身份验证”。

先决条件

要在生产中使用 TLS,您必须具有由可信证书颁发机构签名的未加密 PEM 格式的证书。

证书还需要为“启用子域隔离”中列出的子域配置使用者可选名称,如果证书已由中间证书颁发机构签名,将需要包含完整的证书链。 有关详细信息,请参阅维基百科上的“使用者可选名称”。

可使用 ghe-ssl-generate-csr 命令为实例生成证书签名请求 (CSR)。 有关详细信息,请参阅“命令行实用程序”。

密钥必须是 RSA 密钥,并且不能有密码。 有关详细信息,请参阅“从密钥文件中删除密码

上传自定义 TLS 证书

警告: 配置 TLS 会导致 your GitHub Enterprise Server instance 出现短暂停机。

  1. 从 GitHub Enterprise Server 上的管理帐户任意页面的右上角,单击

    用于访问站点管理员设置的火箭图标的屏幕截图

  2. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。

    “站点管理员”链接的屏幕截图 1. 在左侧边栏中,单击“管理控制台”。 左侧边栏中的 管理控制台 选项卡 1. 在左侧边栏中,单击“隐私”。 设置侧边栏中的“隐私”选项卡 1. 选择“仅限 TLS”(推荐)。 用于选择“仅限 TLS”的复选框

  3. 在“TLS Protocol support”下,选择您想要允许的协议。 包含用于选择 TLS 协议的选项的单选按钮

  4. 在“证书”下,单击“选择文件”以选择要安装的 TLS 证书或证书链(PEM 格式)。 此文件通常采用 .pem、.crt 或 .cer 扩展名 。 用于查找 TLS 证书文件的按钮

  5. 在“未加密密钥”下,单击“选择文件”以选择要安装的 RSA 密钥(PEM 格式)。 此文件通常采用 .key 扩展名。 用于查找 TLS 密钥文件的按钮

  6. 在左侧边栏下,单击“保存设置”。

    管理控制台 中的“保存设置”按钮的屏幕截图

    注意:保存 管理控制台 中的设置会重启系统服务,这可能会导致用户可察觉的停机时间。

  7. 等待配置运行完毕。

    配置实例

关于 Let's Encrypt 支持

Let's Encrypt 是公共证书颁发机构,他们使用 ACME 协议颁发受浏览器信任的免费、自动化 TLS 证书。 您可以在设备上自动获取并续订 Let's Encrypt 证书,无需手动维护。

要使用“让我们加密”自动化,您的设备必须配置可通过 HTTP 公开访问的主机名。 该设备还必须可以进行出站 HTTPS 连接。

在使用 Let's Encrypt 启用 TLS 证书管理自动化后,your GitHub Enterprise Server instance 将与 Let's Encrypt 服务器通信,以获取证书。 要续订证书,Let's Encrypt 服务器必须通过入站 HTTP 请求验证已配置域名的控制。

还可以在 your GitHub Enterprise Server instance 上使用 ghe-ssl-acme 命令行实用程序自动生成 Let's Encrypt 证书。 有关详细信息,请参阅“命令行实用程序”。

使用 Let's Encrypt 配置 TLS

要使用“让我们加密”自动化,您的设备必须配置可通过 HTTP 公开访问的主机名。 该设备还必须可以进行出站 HTTPS 连接。

警告: 配置 TLS 会导致 your GitHub Enterprise Server instance 出现短暂停机。

  1. 从 GitHub Enterprise Server 上的管理帐户任意页面的右上角,单击

    用于访问站点管理员设置的火箭图标的屏幕截图

  2. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。

    “站点管理员”链接的屏幕截图 1. 在左侧边栏中,单击“管理控制台”。 左侧边栏中的 管理控制台 选项卡 1. 在左侧边栏中,单击“隐私”。 设置侧边栏中的“隐私”选项卡 1. 选择“仅限 TLS”(推荐)。 用于选择“仅限 TLS”的复选框

  3. 选择“使用 Let's Encrypt 启用 TLS 证书管理自动化”。 用于启用 Let's Encrypt 的复选框 1. 在左侧边栏下,单击“保存设置”。

    管理控制台 中的“保存设置”按钮的屏幕截图

    注意:保存 管理控制台 中的设置会重启系统服务,这可能会导致用户可察觉的停机时间。

  4. 等待配置运行完毕。

    配置实例 1. 在左侧边栏中,单击“隐私”。 设置侧边栏中的“隐私”选项卡

  5. 单击“请求 TLS 证书”。 “请求 TLS 证书”按钮

  6. 等待“状态”从“开始”更改为“完成”。 Let's Encrypt 状态

  7. 单击“保存配置”。