OpenWrt旁路由配置动态域名, 开启SSL远程访问教程

本文以博主家庭网络为例,介绍在旁路由上配置CloudFlare动态域名并安装ACME证书,实现远程访问的方法。

设置动态域名的前提:光猫拨号后获取的必须是公网地址。

家庭网络主路由使用华为P812E光猫,配置为路由模式。负责拨号上网,同时为AP提供Poe供电。几个面板组成Mesh网络,由一台r6s旁路由负责分配DHCP,并提供其他服务。

一、P812E开启端口转发

进入P812E光猫Web设置界面,转到高级设置>转发规则>IPv4端口映射,添加一条映射规则。由于运营商一般都将公网常用的80、443、8080等端口屏蔽,我们选择一个可用的端口进行映射。本示例使用9443端口,将WAN接口上的9443端口映射到OpenWrt旁路由443端口上,192.168.18.2为旁路由的LAN地址。

点击应用,现在就可以使用https://wan ip:9443端口访问OpenWrt。

二、设置动态域名

1、在CloudFlare上,添加一条动态域名记录,这里使用了一个二级域名,IPv4地址输入临时地址(客户端配置好动态域名程序后会自动更新地址),关闭代理选项,点击保存。

2、在OpenWrt上,通过软件包安装ddns-go插件,如果软件包中没有这个插件,可以去这里这里下载最新的ipk程序并手动安装。安装完成后,转到服务>ddns-go,启用ddns-go服务。

浏览器输入LAN IP:9876地址打开DDNS-GO设置页面,设置参数如下图所示,本教程使用CloudFlare管理的域名,只需要输入DNS的令牌和域名信息即可。其他服务商请参考设置说明。

设置完成点击左上方的Save按钮,保存配置。实时连接信息可以点击右上方的日志进行查看。如果设置无误,那么在CloudFlare上添加的记录应该更新了光猫WAN接口公网地址。

浏览器输入https://test.pfchina.xyz:9443,应该可以打开OpenWrt旁路由登录界面。由于没有配置证书,会提示连接不安全。

三、配置ACME证书

详细安装说明请参考这里

安装acme.sh

进入OpenWrt的后台,安装acmd.sh,标红部分请替换为用于注册acme的邮箱。

curl https://get.acme.sh | sh -s email=[email protected]

如果有奇奇怪怪的问题无法成功安装,可以先挂个代理。

配置证书

由于80和443端口无法使用,只能使用手动dns方式在域名上添加一条txt 解析记录, 验证域名所有权。Cloudflare Domain API提供了两种自动颁发证书的方法。

使用全局API密钥

使用Cloudflare账户的全局API密钥和域名注册邮箱替换下面标红部分,并在OpenWrt执行这两条命令:

export CF_Key="key" 
export CF_Email="[email protected]"

使用DNS区域令牌

登录Cloudflare帐户,找到网站,打开自己使用的动态域名所使用的顶级域名,在右侧找到区域ID(export CF_Zone_ID)和帐号ID(export CF_Account_ID)。找到个人资料菜单,点击左侧的API令牌栏,然后点击创建令牌,添加一个对应项级域名的API令牌(export CF_Token)。

用上面获取的数据替换下面标红部分,并在OpenWrt上执行这三条命令:

export CF_Token="token" 
export CF_Zone_ID="zone" 
export CF_Account_ID="id"

两种方法使用一种即可。添加完txt解析记录后,执行以下命令申请证书,标红部分为设置的域名。

/root/.acme.sh/acme.sh --issue --dns dns_cf -d test.pfchina.xyz -d www.test.pfchina.xyz

在申请证书之前,建议先关闭代理。申请证书需要一点时间,请耐心等待。申请成功以后将会出现以下信息:

证书和私钥默认保存在以下位置:
/root/.acme.sh/test.pfchina.xyz_ecc/test.pfchina.xyz.cer 
/root/.acme.sh/test.pfchina.xyz_ecc/test.pfchina.xyz.key

证书的有效期为三个月,acme.sh安装程序添加了定时任务,到期会自动更新证书。

四、修改OpenWrt配置文件

使用vi命令,打开/etc/config/uhttpd文件,修改标红部分并保存退出。
config uhttpd 'main'
list listen_http '0.0.0.0:80'
list listen_http '[::]:80'
list listen_https '0.0.0.0:443'
list listen_https '[::]:443'
option redirect_https '1'
option home '/www'
option rfc1918_filter '1'
option max_connections '100'
option cert '/root/.acme.sh/test.pfchina.xyz_ecc/test.pfchina.xyz.cer'
option key '/root/.acme.sh/test.pfchina.xyz_ecc/test.pfchina.xyz.key'

执行命令,重启uhttpd。

/etc/init.d/uhttpd restart

五、检查测试

浏览器输入https://test.pfchina.xyz:9443,检查证书是否生效,是否挂锁成功。

评论

  1. longlong
    4 月前
    2023-12-23 13:20:53

    我没有DDNS-go 只有动态DNS 跟你的配置差不多 之做到了 没有https的url能进去 动态DNS 加SSL需要CA认证 写的 我像你做的acme.sh 也安装了 配置了配置了 也用命令重启了 uHTTP、还是小锁头没有

    • 鉄血男兒
      博主
      longlong
      4 月前
      2023-12-24 11:52:06

      检查证书是否是申请成功了

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇