配置 frpc 使用的 SSL 证书

在以下两个典型场景中,您可能会需要 为 frpc 配置 SSL 证书,以避免证书错误提示:

  1. 隧道启用了 自动 HTTPS,但服务访问者不支持(或不愿)忽略 证书错误提示
  2. 隧道启用了 访问认证,但需要避免认证页面的 证书错误提示 以增强安全性

此页将介绍如何为 frpc 配置 SSL 证书来避免 自动 HTTPS访问认证 功能的证书错误提示。如果您没有使用这些功能,此页的内容不适用于您碰到的问题。

更好的解决方案

如果您在为 自动 HTTPS 配置证书,更好的解决方案可能是为您的后端应用配置 TLS,并 关闭 自动 HTTPS。
这通常来说更容易配置,性能更好,且更不容易出问题。

获取 SSL 证书

您需要拥有一个属于自己的域名才能申请、部署 SSL 证书。如果您还没有域名,请先到任意注册商购买一个。

有了域名后,选择一个 SSL 服务商,按照他们的流程进行申请即可。下面是一些常见的 SSL 服务商:

SSL 服务商 不必 是当前域名的注册商,按需选择适合您的平台即可。

如果下载证书时有多种格式可选,请选择 Nginx 格式,简单的说就是有 .key.crt 文件那种。

证书域名注意事项

如您打算通过 sub.example.com 访问隧道,那么就应为 sub.example.com*.example.com 申请证书

  • sub.example.com:这是 单域名 证书,仅对绑定的 sub.example.com 有效
  • *.example.com:这是 泛域名 证书,对所有二级域名均有效,如 a.example.comb.example.com

配置 frpc 的 SSL 证书

更新自动 HTTPS 设置

登录管理面板修改隧道配置,在 自动 HTTPS输入您的域名,该域名应与您申请的 SSL 证书域名一致。

然后,启动隧道以进行测试,让 frpc 生成自签名的证书文件。

替换自动 HTTPS 证书文件

自签名证书在 frpc 的 工作目录 中,您需要将其 替换为 您申领的 SSL 证书。

Windows 启动器

对于 v2.0.5.0 及以上版本,工作目录在 %ProgramData%\SakuraFrpService\FrpcWorkingDirectory

如果您没有对系统进行过 “优化”,这个目录通常是 C:\ProgramData\SakuraFrpService\FrpcWorkingDirectory

对于旧版本启动器,工作目录就是启动器的 frpc.exe 所在路径。

如果刚才已启动隧道测试,那么此时,在工作目录中就可以看到自签名证书了:

  • example.com.crt:自签名证书文件
  • example.com.key:自签名证书的私钥文件

此时应先 确保隧道已关闭,随后替换这两个 自签名证书

  1. 将您自己申领的 SSL 证书下载到本地,找到其中的 .crt.key 文件
  2. .crt 文件重命名为 您的域名.crt,如 example.com.crt
  3. .key 文件重命名为 您的域名.key,如 example.com.key
  4. 将重命名后的 SSL 证书放到 frpc 工作目录,并 直接替换 里面的文件即可
    * Docker 直接挂载进去重启就可以了,不需要进行替换

最后,重新启动隧道并尝试访问。如果您的配置步骤、申请的证书没有问题,那么将不再出现证书错误提示。

注意

如果您发现启动隧道后,frpc 工作目录中您替换的 SSL 证书重新被 frpc 替换为自签名证书,那么说明 frpc 未能解析您的 SSL 证书,请检查证书完整性、各文件是否正确。

访问认证配置 SSL 证书

  • frpc v0.42.0-sakura-3.1 及以上版本访问认证会遵循 自动 HTTPS 配置项的规则加载证书,参考 配置 frpc 的自动 HTTPS 功能 和上面的 替换自动 HTTPS 证书文件 配置即可
  • 对于 v0.42.0-sakura-3 及更低版本,您可以通过替换 frpc 工作目录下的 authpanel.<crt|key> 让访问认证加载对应的证书

设置域名解析

您为您的 启用访问认证的隧道 设置了绑定指定域名的 SSL 证书。 因此在访问时,若要避免证书错误提示,需要通过您的域名访问隧道。

主机记录记录类型记录值其他配置项
自定义CNAME节点域名无特殊需求请保留默认

随后,访问 https://您的域名:远程端口,即可进入访问认证页面。