域名注册后的那些事

前言

因为工作上的需要,有个接口需要公网才能实现,所以买了域名,结果发现内网穿透的工具要求域名备案才能使用,于是又申请了域名备案,内网穿透被拦截,选择了另外一台服务器,使用Nginx反向代理。

域名备案

在腾讯云注册的域名,直接提供域名备案服务(应该是购买他们的云空间等业务才能提供),看了下最便宜的产品也要不少钱,但备案时有个授权码,淘宝购买10来钱搞定,按照要求提供各种各样的资料,提交后客服会电话沟通填写的内容是否符合要求,然后就是工信部的短信认证。

紧接着就是漫长的等待,腾讯云上提示备案是是2个工作日,这一等就是一周(4天),又是一周(5天),各省审核时间不同,查了下江苏是9个工作日,果然,第10个工作日的时候收到了腾讯云备案通过的通知。比自己在工信部网站查询要快,是我查询的地方不对吗?不管它了,备案通过了,那么就进行下一步吧···

内网穿透

之前接触了内网穿透工具SAKURA FRP, 可以每日免费领取流量,适合我这个测试使用的。设置通道使用备案过的域名,解析至对应的节点,设置通道对应本地网站的端口,顺利搭建成功。

但不幸的是内网穿透工具安装后,通道总是链接失败,节点也可以ping通,通过问题查询,官方给出的建议是联系网络中心解除拦截或者换别的工具使用。换了花生壳,可以实现内网穿透,但是只能使用它提供的域名,所以放弃了。

突然想到放在单位外还有一个服务器B,在另外一个内网中,两个内网通过vpn连接,B可以访问A的网站,这台服务器B上可以使用内网穿透工具,实现了内网穿透,下一步是如何将内网穿透工具对应的端口号对应到服务器A的网站。

Nginx反向代理

以前因为服务器B上IIS的安全问题,接触过一段时间的Nginx,使用的就是反向代理功能,间接的将访问请求转发至内网的其他网站。

这次刚好利用服务器B上的Nginx将本地端口直接指向服务器A的网站。

使用域名访问成功,终于实现了内网网站发布到公网的需求。

SSL证书申请

内网穿透通道可以选择http也可以选择https协议,如果选择了https协议还需要准备域名SSL证书,ZeroSSL申请证书方便,但是浏览器会显示不受信任的证书,于是还是换回主流的Let‘s Encrypt申请证书。

下载Win-acme工具,解压至服务器A,申请证书时需要验证域名的归属权,方法有很多个,网上搜索到3种方法的,这里我用了第一种联网认证的,通过http访问本地网站根目录的验证文件进行验证(验证文件由程序在执行过程中自动生成,验证完成自动删除)。启动工具按照步骤一步步操作,因为使用的不是IIS,第一步要选择手动模式,选择Nginx相关的,之后要输入网站根目录路径,就可以启动验证了,验证通过的证书会存储在指定的目录下,将其复制到服务器B的Nginx的目录里,在Nginx里设置https的端口监听及代理路径即可。

ZeroSSL和Let’s Encrypt申请的证书都只有90天的有效期,所以到期的时候再运行下程序更新即可。