用自己的域名给内网服务开 HTTPS:备案、解析、证书、隧道四步
作者
小编
发布时间

用自己的域名通过 HTTPS 访问内网网站,需要已备案的域名、指向节点的解析、SSL 证书和一条 HTTPS 隧道。本文按四步讲清 PassNAT 上的做法,以及拦截页、证书路径等常见问题。
想用自己的域名通过 HTTPS 访问内网里的网站,需要四样东西:一个已完成 ICP 备案的域名、指向 PassNAT 节点的 DNS 解析、一张 SSL 证书、一条 HTTPS 类型的隧道。域名还没备案的话,可以先用 PassNAT 提供的系统域名,不需要备案和解析。

只想尽快能用:先用系统域名
如果只是自己用、对域名没要求,最快的做法是建一条 HTTP 隧道,子域名随便起,顶级域名选系统提供的。创建后解析自动生效,直接可以访问。

下面讲用自己的域名并开启 HTTPS 的完整做法。
第一步:域名要已备案
PassNAT 的节点都在国内,HTTP 和 HTTPS 隧道绑定的自有域名必须已完成 ICP 备案。注意备案和域名实名认证是两回事,只做了实名认证不算。
在控制台「隧道管理」→「域名管理」里添加域名。添加后点击「过白名单」,选择隧道所在的可用区。可选的可用区以控制台显示为准。
第二步:把域名解析到节点
在你的 DNS 服务商那里添加一条 A 记录,指向隧道所在节点的 IP。节点 IP 是固定的,在隧道详情里能看到。
第三步:准备 SSL 证书
向证书服务商申请这个域名的证书,按对方要求完成域名所有权验证,拿到证书文件和私钥文件。证书需要是 Apache 格式。
如果想给 PassNAT 系统域名下的子域名申请证书:证书服务商会给出一条 TXT 验证记录,到「域名管理」里点击对应根域名的「验证 DNS」按钮添加,然后尽快完成验证。目前只支持 TXT 方式的验证。
第四步:创建 HTTPS 隧道
创建隧道时传输协议选 HTTPS。接下来分两种情况,取决于你内网里的服务本身是 HTTP 还是 HTTPS。
内网服务是 HTTP(多数情况)
内网服务不用改,由客户端负责加上 HTTPS。把证书和私钥文件放在运行 PassNAT 客户端的那台机器上,在控制台里填这两个文件的绝对路径。文件不需要上传到控制台。
Windows 上路径里的反斜杠要写成两个,否则日志里会出现 JSON 解析报错:
1C:\\Users\\你的用户名\\certs\\privkey.key
内网服务已经是 HTTPS
证书配置在内网服务自己那边,隧道只负责转发,不需要在控制台填证书路径。
访问和验证
连接隧道后,用 https:// 开头的完整地址访问。直接输入域名浏览器可能默认走 http://,会访问失败。
常见问题
打开是「您访问的网站被拦截」:通常是三种原因之一。直接访问了节点 IP 而不是域名;备案域名没有在对应可用区过白名单;内容违规被机房拦截。
提示 The plain HTTP request was sent to HTTPS port:用 HTTP 去访问了 HTTPS 端口,把地址改成 https:// 开头。
一条隧道能绑几个域名:HTTP 和 HTTPS 隧道能绑的域名数取决于套餐的单隧道端口数,Pro-青春版是 5 个,最高 20 个。
增加端口后不生效:控制台改完后配置文件不会自动更新,用 frpc 的话要重新复制配置并重启;用官方客户端的话重新连接隧道。
更多细节见 HTTPS 协议穿透文档 和 常见问题。
开始使用 PassNAT
PassNAT 帕斯内网穿透基于 frp,四个地区 17 个节点,以 BGP 线路为主,支持 TCP、UDP、HTTP、HTTPS,Windows 和 macOS 有图形客户端,飞牛 NAS 可在应用商店直接安装。套餐 6 元/月起,按月付费,随时可以升级。
注册并登录控制台,创建第一条隧道;或先看 套餐、价格与节点一览。