Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

我是在项目开发的过程中暂时暴露后端服务与前端通信时遇到的问题。浏览器限制要求必须使用https协议,然而Sakura自带的自签名证书会报错,甚至导致部分服务无法使用。一气之下决定彻底解决这个问题。

1 准备工作

首先,你要拥有一个自己的域名。我的域名都是腾讯云的。SSL证书的注册要求是你自己的域名。

学术研究可以考虑使用纯数字(6位,8位都可).xyz ,十来块一年很便宜。作为常用域名还是推荐.cn后缀,国内域名,常见权威,关键是比.com便宜一大截。

然后,要有一个Sakura的账号和frpc。这里不过多赘述。

2 注册证书

  • 这里使用 Zero SSL

  • 1 注册账号后,跟随图片指引填写信息。注意不要选任何付费项(pro)。

  • 2 选择DNS验证域名所属。记住下图信息,然后打开腾讯云控制台,创建一个CNAME解析。注意主机记录不要包括你的域名,只要前面的二级域名,也就是到XXX.sakura为止。记录值就是point to的内容照抄。

  • 3 这个解析验证后可以删除。

  • 4 等待解析验证通过,证书马上就下来
这个页面就成功了,可以下载证书了
这个页面就成功了,可以下载证书了
  • 5 按照上图指引,选择NGINX,然后下载,证书下载成功。

3 配置证书

3.1 配置SSL

解压下载下来的文件后,会得到3个文件,certificate.crt,ca_bundle.crt,private.key

  • 打开 certificate.crt 文件,复制所有内容。
  • 打开 ca_bundle.crt 文件,复制所有内容。
  • 创建一个新的文本文件,命名为 sakura.xinghenluyus.cn.crt。(你的域名.crt,下文以同理)
  • certificate.crt 的内容粘贴到新文件中。
  • 在新文件末尾添加一个空行。
  • ca_bundle.crt 的内容粘贴到新文件中。
  • 最终的 sakura.xinghenluyus.cn.crt 文件应该看起来像这样:
frp.xinghenluyus.cn.crt
1
2
3
4
5
6
7
-----BEGIN CERTIFICATE-----
... (your domain certificate content) ...
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
... (intermediate certificate chain content) ...
-----END CERTIFICATE-----
  • private.key 改名为 sakura.xinghenluyus.cn.key 。(你的域名.key)

最终得到sakura.xinghenluyus.cn.crtsakura.xinghenluyus.cn.key

3.2 配置SakuraFrp启动器

  • 开启自动HTTPS,填入注册证书的域名。
开启https
开启https
  • 启动器进入 设置 -> 打开工作目录 ,进入 FrpcWorkingDirectory 文件夹。(frpc类似,也有这个文件夹)
打开工作目录
打开工作目录
  • sakura.xinghenluyus.cn.crtsakura.xinghenluyus.cn.key 都粘贴到当前文件夹,如果有就覆盖系统自带的。

3.3 配置域名解析

  • 进入腾讯云的解析,新建CNAME解析,主机记录填sakura,记录值控制台日志里抄。
新建记录
新建记录
  • 记录值来源:
记录值来自控制台日志
记录值来自控制台日志

3.4 成功示例

  • 开启隧道,查看控制台,证书是否加载成功。出现下图界面则成功
成功示例
成功示例

这时可以浏览器连接测试,发现弹出安全警告了。

评论