OpenWrt 开启 HTTPS 通过外网访问
申请证书
通过acme.sh一键脚本申请证书,自动续期
安装脚本
1
curl https://get.acme.sh | sh
安装后会自动添加一个计划任务,用于更新证书,所有文件都在
.acme.sh
目录中使用 DNS API 获取证书(最方便),参考:https://github.com/acmesh-official/acme.sh/wiki/dnsapi
这里选择的是 cloudflare 的全局 API KEY1
2export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export CF_Email="xxxx@sss.com"导入 API 信息后执行以下命令
1
.acme.sh/acme.sh --issue --dns dns_cf -d *.pblood.com --keypath /etc/uhttpd.key --fullchainpath /etc/uhttpd.crt --reloadcmd "/etc/init.d/uhttpd restart"
-d 指定域名,这里选择的是通配符域名,–keypath 指定密匙路径,–fullchainpath 指定证书路径,这里让新证书覆盖 OpenWRT 原证书,–reloadcmd 执行重启 uhttpd 服务命令,uhttpd 是 OpenWRT 的轻量级服务器
修改 OpenWrt 后台端口
默认 80,443 端口均被运营商封禁,需要改用其它端口才能实现外网访问
方法一:编辑配置文件/etc/config/uhttpd
,修改 HTTPS 服务端口,这里用 4443 替代被运营商封禁的 443 端口
1 | list listen_https '0.0.0.0:4443' |
修改完重启 uhttpd 服务
1 | /etc/init.d/uhttpd restart |
记得开放防火墙对应端口
方法二:设置端口转发。OpenWRT SSL 端口一般是 443,将 4443 转发到 443 端口即可
最后通过
https://domain:4433
就能通过 HTTPS 远程访问我们的路由器后台啦!若想不带端口访问需借助未封80、443端口的服务器,隐性URL转发也可实现,但是有时会丢失网页格式,暂不考虑。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Pbloodの小岛!
评论