为 OpenWRT 安装 https 证书

最近在内网装了个 OpenWRT,开始 Chrome 还能正经访问 192.168.1.1,不知道装了哪个插件,就必须强制 https,结果 Chrome/Edge 开始不给访问了,只能上 Firefox…

然后就很烦,于是找到文档,装了一张证书。

也很简单,首先在阿里云免费获得了一张年有效期的证书,来自 DigiCert:

Screen-Appinn2022-04-08 12.58.31

到处找年证书,想不到在阿里云…不想折腾 Let’s Encrypt,三个月一次又没有 80 口…

然后就在后台装 luci-app-uhttpdluci-i18n-uhttpd-zh-cn,在服务 > uhttpd 里把证书换掉就行了:

Screen-Appinn2022-04-08 13.01.06

最后,就直接用域名访问即可。


再最后,生成证书请求文件的命令如下:

openssl req -new -newkey rsa:4096 -nodes -out domain.csr -keyout domain.key -subj "/C=US/ST=texas/L=San Antonio/O=LZ/CN=openwart.domain.com"

你直接用这个吧 https://nip.io/

openwrt 要绑证书啊。

我想起来了:

我现在是 NAS 申请证书然后同步到 OpenWRT,路由器会定时重启,所以就不需要检查证书更新。

我之前自己编译lede遇到类似的情况,最后发现nginx的设置问题。


config main global
	option uci_enable 'true'

config server '_lan'
	list listen '443 ssl'
	list listen '[::]:443 ssl'
	option server_name '_lan'
	list include 'restrict_locally'
	list include 'conf.d/*.locations'
	option uci_manage_ssl 'self-signed'
	option ssl_certificate '/etc/nginx/conf.d/_lan.crt'
	option ssl_certificate_key '/etc/nginx/conf.d/_lan.key'
	option ssl_session_cache 'shared:SSL:32k'
	option ssl_session_timeout '64m'
	option access_log 'off; # logd openwrt'

config server '_redirect2ssl'
	list listen '80 default_server'
	list listen '[::]:80 default_server'
#	option server_name '_redirect2ssl'
    list include 'restrict_locally'
    list include 'conf.d/*.locations'
#	option return '302 https://$host$request_uri'

搞成了files大法。

如果其他人修改的话,请注意备份,本人不对使用结果做保证。