最简单的方法利用mkcert部署FRP的SSL(TLS)加密

1.2k 词

下载安装mkcert

根据官方下载教程命令行下载安装mkcert

或者直接下载二进制文件

生成证书(以Windows平台为例)

确认安装/查看帮助

1
./mkcert.exe --help

生成服务器端证书

为域名生成证书

如果是使用动态公网IP,建议自行设置DDNS绑定域名,使用以下命令为此域名生成TLS证书(将下方example.com替换为自己的域名)

1
./mkcert.exe example.com

为IP生成证书

如果是使用固定公网IP,则可以使用以下命令直接为IP生成TLS证书(IP变化将会使证书失效),将下方1.1.1.1替换为自己的IP

1
./mkcert.exe 1.1.1.1

生成客户端证书

生成客户端证书大致流程同服务器端证书相同,只是多加了-client这个参数,此处不再赘述,直接上命令行

为域名生成证书

1
./mkcert.exe -client example.com

为IP生成证书

1
./mkcert.exe -client 1.1.1.1

部署证书

获取 根CA 证书

Windows下的根CA文件路径默认为C:\Users\你的用户名\AppData\Local\mkcert

也可使用下面的命令查询路径

1
.\mkcert.exe --CAROOT

重命名证书

将获取到的几个证书统一重命名,上一章节生成的服务器、客户端证书在命令行本目录下,生成的文件为pem后缀名,可直接将文件重命名为client.crtclient.keyserver.crtserver.keyca.crtca.key

配置FRP

将server.crt、server.key、ca.crt证书放到FRPS目录下

将client.crt、client.key、ca.crt证书放到FRPC目录下

根据FRP官方文档进行配置,将文件路径替换为你的真实路径,部署完成后重新启动frpc,frps程序无报错既是部署成功。

1
2
3
4
5
6
7
8
9
10
11
12
# frpc.ini
[common]
tls_enable = true
tls_cert_file = /to/cert/path/client.crt
tls_key_file = /to/key/path/client.key
tls_trusted_ca_file = /to/ca/path/ca.crt

# frps.ini
[common]
tls_cert_file = /to/cert/path/server.crt
tls_key_file = /to/key/path/server.key
tls_trusted_ca_file = /to/ca/path/ca.crt

参考文档
https://github.com/FiloSottile/mkcert
https://github.com/fatedier/frp/blob/dev/README\_zh.md