对于frp安全传输非常重要
这里是对传输的端口进行证书加密
frp的配置使用可以参考我的这篇博客:
链接: frp安装配置
![图片[1]-frp ssl证书配置 密钥生成 - 轻快博客-轻快博客](https://file.627h.cn/view.php/074ce115ec4918789d1e33dde26673ab.webp)
一、生成密钥
以下命令在linux下演示,windows下命令也是一致,但是需要自己去配置,可能有很多坑,建议直接用linux生成。
放到哪里都行,我这放到了frp的目录下,如果按照我的教程安装的直接用
mkdir /usr/local/frp/cert && cd /usr/local/frp/cert
1.OpenSSL 配置文件拷贝到当前目录
openssl一般都自带,无需安装,如果没有则安装openssl
apt-get install openssl
或
dnf install openssl
查找my-openssl.cnf
find / -name "openssl.cnf"
我的位置是在/etc/ssl下,复制到/usr/local/frp/cert中
cp /etc/ssl/openssl.cnf ./my-openssl.cnf
2.生成ca
直接抄
openssl genrsa -out ca.key 2048
openssl req -x509 -new -nodes -key ca.key -subj "/CN=example.ca.com" -days 5000 -out ca.crt
3.生成frps的证书
openssl genrsa -out server.key 2048
注意,下面这条两条命令的127.0.0.1改成你的公网服务器的ip,否则无法使用
openssl req -new -sha256 -key server.key \
-subj "/C=XX/ST=DEFAULT/L=DEFAULT/O=DEFAULT/CN=server.com" \
-reqexts SAN \
-config <(cat my-openssl.cnf <(printf "\n[SAN]\nsubjectAltName=DNS:localhost,IP:127.0.0.1,DNS:example.server.com")) \
-out server.csr
注意这一条的365是365天,如果不想麻烦就加个0吧
openssl x509 -req -days 365 -sha256 \
-in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
-extfile <(printf "subjectAltName=DNS:localhost,IP:127.0.0.1,DNS:example.server.com") \
-out server.crt
4.生成frpc的证书
直接抄
openssl genrsa -out client.key 2048
openssl req -new -sha256 -key client.key \
-subj "/C=XX/ST=DEFAULT/L=DEFAULT/O=DEFAULT/CN=client.com" \
-reqexts SAN \
-config <(cat my-openssl.cnf <(printf "\n[SAN]\nsubjectAltName=DNS:client.com,DNS:example.client.com")) \
-out client.csr
注意这一条的365是365天,如果不想麻烦就加个0吧
openssl x509 -req -days 365 -sha256 \
-in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
-extfile <(printf "subjectAltName=DNS:client.com,DNS:example.client.com") \
-out client.crt
二、部署到服务端(frps)
由于是在公网ip的服务器创建密钥的,所以直接修改就行
vi /usr/local/frp/frps.ini
最后面加上
# 证书,双向验证,frps验证frpc,同时frpc验证frps
tls_only = true
tls_cert_file = /usr/local/frp/cert/server.crt
tls_key_file = /usr/local/frp/cert/server.key
tls_trusted_ca_file = /to/ca/path/ca.crt
保存并重启
systemctl restart frps
三、部署到客户端(frpc)
客户端需要将生成的以下三个文件下载下来:
客户端以linux为例,windows方法一致,图形化界面就不演示了
client.crt、client.key、ca.crt
1.创建客户端的文件夹
mkdir /usr/local/frp/cert && cd /usr/local/frp/cert
上传上面的三个文件
编辑配置文件
vi /usr/local/frp/frpc.ini
在common中添加
# 证书,双向验证,frps验证frpc,同时frpc验证frps
tls_only = true
tls_enable = true
tls_cert_file = /usr/local/frp/cert/client.crt
tls_key_file = /usr/local/frp/cert/client.key
tls_trusted_ca_file = /usr/local/frp/cert/ca.crt
保存并重启
systemctl restart frpc
四、其它情况
如果使用stcp或者xtcp,这时候访问也需要配置证书,否则无法使用,方法同部署到客户端的
© 版权声明
THE END
暂无评论内容