可能有些朋友和我一样在家里使用域名解析的公网IP地址,也或许有朋友使用了DDNS动态域名解析,本来开不开启 SSL 加密都是无所谓的,但为了安全起见自己还是决定给解析在 OpenWrt 上的域名加装个 https 加密证书,这样加密数据传输比较安全。
操作步骤
1、去申请域名证书,不推荐使用 Let's Encrypt 是有效期太短,需要在固件内部署自动续费,建议使用腾讯云、阿里云 或 Freessl 的年证书,彧繎是在 Freessl 购买的 3 年证书,如何申请就不多说了,自行解决吧。
2、接着确认 OpenWRT 固件是否安装 openssl 服务,如果没有安装或需要更新,可以通过以下命令解决,安装中途如出现:openssl: not found,可通过强制命令安装,如下:
# 安装 OpenSSL 服务 opkg update opkg install luci-ssl-openssl libuhttpd-openssl # 提示错误强制安装 opkg update opkg install --force-reinstall libustream-openssl openssl-util
3、查看或修改 uhttpd 文件,文件位置在 /etc/config/uhttpd,使用SSH登录到 OpenWrt,执行以下命令进行查看 证书存放位置 和 证书格式,如下图:
vi /etc/config/uhttpd
4、下载 Nginx 使用格式证书,将 域名.pem 和 域名.key 修改为 uhttpd.crt 和 uhttpd.key,并上传到 /etc/ 目录下,如下图:
5、然后再检查 uhttpd 文件内的 config uhttpd 'main' 内容是否为以下内容,如果正确无误,就可以进行重启 uhttpd 服务,安装成功后,如下图:
config uhttpd 'main' list listen_http '0.0.0.0:80' # ipv4 http 端口 80 list listen_http '[::]:80' # ipv6 http 端口 80 list listen_https '0.0.0.0:443' # ipv4 https 端口 443 list listen_https '[::]:443' # ipv6 https 端口 443 option redirect_https '1' # http 访问强制跳转 https,可以不添加 # 重启 uhttpd 服务 /etc/init.d/uhttpd restart
注意事项
特别要注意的是证书上传的位置必须和 uhttpd 文件设置的存放位置相同,可以修改存放位置,默认为:/etc/ 目录。
如执行重启 uhttpd 服务后,未开启 https,那么请检查软件包内是否已正确安装 openssl 服务,也可通过 opkg remove 卸载干净原本的 openssl 服务后重新安装。
相关文章
发表评论
评论列表