使用acme.sh 自动管理申请证书,并在openwrt上的luci(nginx)上使用。
由于家用宽带没有80 443端口,所以内网访问到 https://你的域名 自动跳转到 https://你的域名:10443
op上套ssl
在openwrt上安装acme.sh
直接安装 luci-app-acme
这个包,依赖会自动安装上。 配置
如果是x86路由,建议docker运行nginx-proxy-manage 或 nginxWebUi等工具,他们自带了acme.sh。支持反向代理什么的。 luci-app-acme 界面有一点怪。
新增 Certificate config 名称随便输入不能用特殊符号
配置,输入 Domain names,如果要泛域名 一起输入,例如 dev.leiyanhui.com 和 *.dev.leiyanhui.com
Challenge Validation 这里设置一下
Validation method 验证模式,在沒有80 443端口的情況下,要實現自動續簽只能使用dns验证的哈
DNS API 接口,我这里用dnspods的,输入dns_dp
DNS API credentials: 这里输入 你dnspods的 token id 和密码 例如:DP_Id="123456"
再加一行DP_Key="XXXXXXXX"
nginx 的那个勾选上
高级设置里面,Days until renewal 输入一个时间,就是续签时间证书的有窍时间,输入一个小于90的数字
稍后会自动申请ssl下来,证书目录 在
|
|
简单处理openwrt的nginx证书
openwrt的配置文件 /etc/nginx/uci.conf 但这个文件实际是tmp目录ln过来的修改后无效
如果你不需要443自动重定向端口功能,可以直接用ls方法 替换证书文件,可以跳过下面的操作继续看后面
|
|
重启nginx
|
|
完毕
配置443 自动转发到10443
因为在openwrt搭建了nginxWebUI 用来套内网的服务,并且使用了非标准端口。为了避免麻烦,所以加一个自动跳转
可以使用插件luci-app-nginx-manager
,或者自己在shell里面编辑 文件/etc/config/nginx
(可以替换证书)
我这里用luci-app-nginx-manager
新增一个配置文件web_jump
路径/etc/nginx/conf.d/web_jump.conf
内容如下
|
|
注意,如果自己在其他地方反代http(s)://路由器内网ip,请不要传递host,不然这里会定位 这里站点造成死循环多次跳转 就打不开了。
nginxWebUI的双acme.sh
另外 如果 和 nginxWebUI 配合的话,可以不用在op上另外安装acme.sh,改为计划任务定时从 nginxWebUI容器cp证书出来。当然也可以挂载出来。
为了方便docker的备份(阿里云提供免费容器镜像),这种轻量的docker一般不建议挂载目录出来。
|
|
同时也要修改上面的nginx的配置文件里面的路径和域名地址即可,example
|
|