openwrt uhttpd 配置 ssl 证书

uHTTPd 是一个 OpenWrt/LUCI 开发者从头编写的 Web 服务器。 它着力于实现一个稳定高效的服务器,能够满足嵌入式设备的轻量级任务需求,且能够与 OpenWrt 的配置框架 (UCI) 整合。默认情况下它被用于 OpenWrt 的 Web 管理接口 LuCI。 当然,uHTTPd 也能提供一个常规 Web 服务器所需要的所有功能。

1、申请 dnspod API 秘钥

访问 https://console.dnspod.cn/account/token/token,创建秘钥

阿里云和 Cloudflare 请参考 https://ssl.ioiox.com/dnsapi

 

2、新建脚本并执行

#!/bin/bash
set -e

EMAIL=xxxxxxx@xx.com
DOMAIN='*.xxxx.com'
DP_Id=xxxxxx
DP_Key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

export DP_Id=$DP_Id
export DP_Key=$DP_Key

echo '设置 acme.sh 命令'
alias acme.sh='/mnt/sda1/acme.sh-master/acme.sh --set-default-ca --server letsencrypt'

echo '开始注册账户'
acme.sh --register-account -m $EMAIL

echo '开始生成证书'
acme.sh --issue --dns dns_dp -d $DOMAIN -f

echo '开始安装证书'
acme.sh --install-cert -d $DOMAIN --key-file /etc/uhttpd.key --fullchain-file /etc/uhttpd.crt --reloadcmd '/etc/init.d/uhttpd restart'

将 EMAIL、DOMAIN 分别设置为自己的邮箱和域名,将 DP_Id、DP_Key 分别设置为上一步申请的秘钥 ID 和 Token,使用 sh 命令运行脚本即可,期间可能失败,注意观察日志

 

3、配置计划任务(可选)

执行下下方命令配置每个月1号的定时更新 ssl 证书任务,不可重复执行!

echo '0 10 1 * * sh /mnt/sda1/openwrt_scripts/acme_ssl_update.sh >> /mnt/sda1/acme/ssl_update.log # 每个月1号的上午10点更新 ssl 证书' >> /var/spool/cron/crontabs/root
/etc/init.d/cron restart

 

via:

https://ssl.ioiox.com/dnsapi

https://github.com/acmesh-official/acme.sh/wiki/说明

posted @ 2023-11-20 17:09  Nihaorz  阅读(1020)  评论(0编辑  收藏  举报