申请证书

通过acme.sh一键脚本申请证书,自动续期

  1. 安装脚本

    1
    curl  https://get.acme.sh | sh

    安装后会自动添加一个计划任务,用于更新证书,所有文件都在.acme.sh目录中

  2. 使用 DNS API 获取证书(最方便),参考:https://github.com/acmesh-official/acme.sh/wiki/dnsapi
    这里选择的是 cloudflare 的全局 API KEY

    1
    2
    export 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
2
list listen_https '0.0.0.0:4443'
list listen_https '[::]:4443'

修改完重启 uhttpd 服务

1
/etc/init.d/uhttpd restart

记得开放防火墙对应端口

方法二:设置端口转发。OpenWRT SSL 端口一般是 443,将 4443 转发到 443 端口即可

最后通过https://domain:4433就能通过 HTTPS 远程访问我们的路由器后台啦!若想不带端口访问需借助未封80、443端口的服务器,隐性URL转发也可实现,但是有时会丢失网页格式,暂不考虑。