配置tcp的https协议证书
你想要的是:
✅ 在本地部署 HTTPS 服务
✅ 然后通过 SakuraFrp 的 TCP 隧道 实现 公网通过 HTTPS 协议访问你的网站
这完全可以实现。下面是完整的部署与公网访问指南:
✅ 一、基本原理
-
Sakura Frp 的 TCP 隧道 是一种原始的端口转发机制,不关心协议内容(HTTP、HTTPS、SSH都可以)
-
所以:你只要在本地网站启用了 HTTPS(监听本地 443 端口),就可以通过 TCP 隧道将它映射出去,公网用 HTTPS://访问你自己的域名或 IP + 端口
✅ 二、本地部署 HTTPS 服务(以 Nginx 为例)
1. 生成 SSL 证书
如果你只是本地测试,可以使用自签名证书(推荐 openssl 生成):
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \-keyout key.pem -out cert.pem
这会生成 key.pem
和 cert.pem
文件。
2. 配置本地 Nginx(监听 443)
server {listen 443 ssl;server_name localhost;ssl_certificate /path/to/cert.pem;ssl_certificate_key /path/to/key.pem;location / {root html;index index.html index.htm;}
}
确保 443
端口本地可以访问:
在本机浏览器访问:
https://localhost
若看到网页,说明 HTTPS 服务成功启动。
✅ 三、Sakura Frp 配置 TCP 隧道转发 443
-
打开 SakuraFrp Launcher(SakuraLauncher.exe)
-
登录 → 添加隧道 → 选择 TCP 类型
-
配置如下:
项目 | 值 |
---|---|
本地 IP | 127.0.0.1 |
本地端口 | 443 |
远程端口 | 自定义(如 20443)或自动分配 |
-
启动该隧道
✅ 四、公网访问方式
如果你 SakuraFrp 分配的是:
公网地址:frp-any.com
远程端口:20443
则你可以公网访问:
https://frp-any.com:20443
一定要加 https://
,否则会因 SSL 握手失败报错!
🔐 如果你想使用自定义域名访问(可选)
假设你有自己的域名 mydomain.com
,你可以:
-
使用 SakuraFrp 的 TCP 隧道绑定此域名
-
在你的域名 DNS 控制台添加一条 A 记录,指向 SakuraFrp 的 IP
-
你本地部署证书必须是
mydomain.com
对应的证书(不是自签名) -
然后你就可以在公网访问:
https://mydomain.com
⚠️ 这比使用 IP+端口方式更高级,但要求域名证书匹配。
✅ 五、注意事项
问题 | 原因 / 建议 |
---|---|
浏览器提示不安全 | 你使用了自签名证书,仅供测试。生产环境需申请正规 SSL 证书 |
浏览器打不开网页 | 检查本地是否监听 443、隧道是否已启动 |
使用了 HTTP 协议访问 | 必须用 https:// ,否则 TCP 隧道内没有协议识别能力 |
✅ 总结流程
步骤 | 内容 |
---|---|
✅ 本地部署 HTTPS 服务 | 监听 443,证书可以自签名或 Let's Encrypt |
✅ SakuraFrp 建立 TCP 隧道 | 本地端口填 443,远程端口如 20443 |
✅ 公网访问 | 用 https://frp-any.com:20443 访问 |