当前位置: 网站首页 技术文章 正文

LEDE/OPENWRT远程访问系列教程(Ⅱ):为自定义域名配置HTTPS访问

来源:互联网 发布时间:2024-09-05 16:18:40

昨天推出LEDE/OPENWRT路由固件的远程访问专题,如何配置DDNS以及绑定自定义域名前文已经介绍。但在昨天的更新里有不少网友表示无法获取动态公网IP,所以如果可以的话最好使用IPv6进行动态解析并进行访问,不过这里需要稍微鸽一下,因为在测试时IPv6 to IPv4端口转发出现问题,目前尚未完成公网IPv6访问,待测试完毕后我们再撰写教程。

这篇文章主要介绍如何实现自定义域名配置HTTPS访问,实际上LEDE固件已经内置名为OPENWRT的根证书,只是默认情况下并未启用HTTPS并且OPENWRT证书也非CA签发因此访问不太方便,所以我们可以自己申请证书并绑定到域名商实现全程HTTPS访问提高安全性。

LEDE/OPENWRT远程访问系列教程(Ⅱ):为自定义域名配置HTTPS访问

正式开始前这些需要提前说明:

1.不推荐大家使用Lets Encrypt证书,并非不好而是在特殊网络环境下有时候可能出现无法签署或自动续签的问题,因此在这篇文章里向大家推荐使用CA签发的免费证书,时长为1年,到期后需重新申请替换证书。

2.配置HTTPS访问可以使公网访问时更加安全,避免因为中间人劫持而泄露账号和密码,因为本身将路由器暴露在公网上已经不够安全,所以非常推荐大家部署HTTPS,当然还有其他安全策略需要部署这个后续再进行说明。

申请免费SSL证书:

申请地址:阿里云免费SSL证书

进入阿里云SSL证书控制台,点击SSL证书—DV单域名免费证书—立即购买,然后下单0元购买后返回前页点击创建证书,创建证书时输入你需要绑定的域名,然后选择DNS验证,这里会自动出现DNS验证主机名称和TXT查询记录,到域名托管的地方进行绑定即可。

绑定后通常几分钟后解析才会生效,待生效后返回阿里云证书控制台点击验证即可签发证书,下载证书包将其中的Nginx文件夹拖放到桌面,内含证书文件crt和私钥文件key,到这里你的证书就成功申请。

DNS验证填写实例:验证目标 _dnsauth.ccc.域名.com 解析类型TXT 记录值:一串数字

添加解析时主机记录里填写_dnsauth.ccc,然后选择TXT记录并在记录值里粘贴数字即可,如提示TTL问题直接选择或手动填写600即可。

上传证书到路由器并移动至目标位置:

首先将证书CRT和私钥KEY重命名,例如命名为home.landian.xyz.crt和home.landian.xyz.key,然后进入LEDE管理界面 — 系统 —文件传输,分别将CRT和KEY文件上传,上传后文件默认保存在/tmp/upload目录。

接着点击系统 — 管理权 — Dropbear实例下端口设置为22、勾选密码验证、勾选允许root用户凭密码登录,点击底部的保存和应用使修改生效。

现在我们需要使用SSH工具进行连接和操作,你可以使用Windows 10自带的OPENSSH亦可使用Windows Terminal终端,或者使用PuTTY等工具。连接地址:192.168.1.1 (你的路由器地址)、连接账号和密码即LEDE固件登录账号与密码。

这里我们以Windows Terminal的命令提示符为例:

ssh root@192.168.1.1#若出现确认提示则输入 yes 并回车#接着输入密码(不显示)输入完成后直接按回车确认即可登录#检查证书和私钥是否上传完成cd /tmp/uploadls#若显示crt和key文件则代表已上传#移动文件至 /etc 目录mv home.landian.xyz.crt /etcmv home.landian.xyz.key /etc#进入/etc目录检查文件是否移动完成cd /etc/ls

修改证书配置安装SSL:

继续在终端里操作,输入opkg install nano安装nano编辑器,如果你会vim编辑器的语法也可以直接使用vim

opkg install nano#编辑uhttpd配置文件nano /etc/config/uhttpd#使用方向键换行修改证书option cert '/etc/uhttpd.crt'option key '/etc/uhttpd.key'#将其修改为option cert '/etc/home.landian.xyz.crt'option key '/etc/home.landian.xyz.key'#按Ctrl+O保存,然后按Ctrl+X退出编辑器#安装nginx-mod-luci-sslopkg install nginx-mod-luci-ssl#安装后此时路由页面可能会自动刷新使用SSL,如果没有的话最好,我们先检查文件nano /etc/config/uhttpd#检查是否已监听443端口list listen_http '0.0.0.0:80'list listen_http '[::]:80'list listen_https '0.0.0.0:443'list listen_https '[::]:443'#如果没问题的话,关闭编辑器、然后关闭终端软件

设置端口转发至443端口:

转到网络 — 防火墙 —端口转发,在底部新建端口转发,名称自定义如:LEDEHTTPS,协议:TCP+UDP,外部端口:自定义例如30000,内部区域IPv4、内部地址192.168.1.1,内部端口443,先点结尾的添加然后点底部的保存和应用。

在防火墙 — 通信规则底部打开路由器端口,规则名称自定义,外部端口即上面设置的30000,此时你就可以通过自定义域名实现HTTPS访问如 https://home.landian.xyz:30000

相关教程