1. 证书申请之前,先要有个域名。而且域名要实名认证。
2. 在域名下申请免费证书,证书申请好会自动给域名加1个解析记录。
3. 证书申请好以后,下载【其他】即可。
下载好以后,替换openwrt本地证书。
阿里云申请的证书文件压缩包里有两个文件,
分别是.key 和.pen 后缀。
把他们的文件名和后缀做修改,改成
uhttpd.key 和 uhttpd.crt
用 WinSCP 登录 Openwrt 后台的/etc 目录下
把原来的 uhttpd.key 和 uhttpd.crt 改名为 uhttpd_old.key 和
uhttpd_old.crt(也可以删除),然后上传下载并重命名的2个证书文件。
然后 SSH 登录 Openwrt,输入以下命令
/etc/init.d/uhttpd restart
这就可以了。
注意和说明的地方:
1. 证书是给你的域名申请的,所以只有你通过域名解析访问你的openwrt时,才会显示证书正确。换句话说,你本地如果是192.168.1.1访问,即使有证书,那么因为访问的不是域名,和地址不匹配,证书也没什么用。
2.所以局域网也没必要强求https,因为强行加了https,也会显示不安全网站,而且浏览器不会自动记忆填充密码。我索性关闭了openwrt里面自动跳转https的选项了(这个要重启生效)。
最后实现的效果是这样的:
小收尾:
我Nginx Proxy Manager弄得letsencrypt证书部署到openwrt上不生效,都是开了的小锁头,用了这个方法可以生效,会出现锁住的小锁头,但是docker没法连接到daemon了,怎么弄都不行,但已部署得容器还能通过端口正常访问、使用。
搜索发现另一个老哥写的博客,说letsencrypt在Linux老系统可能会无法生效,
本人使用的是软路由 n5105,自带的系统是Linux Alpine,搜不到解决方法,本人能力有限,目前无能为力,只能就这么用下去,加上捯饬证书前忘记备份了。。。
所以切记真实操作时一定要慎重,勤备份。