通过配置CloudFlare动态域名,可以方便的远程访问OPNsense防火墙,但在没有设置SSL签名证书的前提下,每次登录都会提示连接不安全。本文将介绍使用Let’s Encrypt免费为防火墙自动创建SSL证书,通过DNS-01质询方法自动验证并自动续订SSL证书。使用该方法不需要开放防火墙的80、443端口。
前提条件
- 有公网IP。
- 已经在CloudFlare注册了顶级域名。
设置动态域名
访问CloudFlare,为防火墙添加一条二级域名A记录。IPv4地址可以随便输入,因为后面可以通过OPNsense防火墙的动态域名程序自动修改,代理选项暂时不选。本示例设置的动态域名为opnwall.pfchina.site。
回到OPNsense防火墙,转到系统>固件,插件选项卡,安装acme和ddclient插件。
转到服务>动态DNS,添加CloudFlare动态域名条目,输入用户名、密码、区域、主机名等信息。注意,密码输入CloudFlare账户的Global API Key。
CloudFlare上的Global API Key。
在常规设置选项卡上,选中启用,然后点击下面的应用按钮。
回到CloudFlare的DNS设置,如果设置正确,添加的A记录会获取到防火墙WAN地址。
设置防火墙规则
由于运营商封闭了80、443端口,需要将防火墙默认访问端口修改为外网可访问的端口,本示例使用5678端口。
转到防火墙>规则,WAN接口,开放WAN接口上5678端口。为了保证安全,该规则的源地址应限定安全范围。
调整系统设置
转到系统>设置>管理,将默认访问端口修改为5678,协议选https。在备用主机名里输入动态域名,或选中禁用DNS重绑定检查选项,以避免触发防火墙的登录保护。
设置完成以后,输入https://opnwall.pfchina.site:5678,可以远程访问防火墙,只不过因为没有配置SSL证书,还处于没挂锁的状态。
SSL证书设置
导航到服务>Acme客户端>帐户,添加一个帐号,输入相关信息,并点击保存。
导航到服务>Acme客户端>挑战类型,添加CloudFlare域名挑战类型。挑战类型选DNS-01,不需要开放80、443端口就可以申请证书。输入域名的其他相关信息,然后点击保存。
导航到服务>Acme客户端>自动操作,添加一条自动化命令,在证书到期时自动重新续签。
单击证书菜单,点击右下角添加按钮添加证书。输入证书的通用名称、备用名称,ACME帐号、挑战类型,选中自动操作选项。然后点击底部的保存按钮。
然后单击颁发/续订所有证书按钮,这需要一些时间,大概两分钟左右。
申请成功后,转到系统>证书>发行菜单,会多出一个CA。
在证书菜单,会多出一个Acme创建的证书。
在吊销菜单,会看到Acme吊销列表。
回到服务>ACME客户端>设置选项卡,选中启用启用插件和自动续订两个选项并点击应用。
转到更新任务选项卡,添加一个定时任务,用于启动证书更新。
添加完成以后,在系统>设置>任务菜单,可以看到新加的定时任务。
最后转到系统>设置>管理,在SSL证书选项下拉菜单中选择由Acme创建的SSL证书,然后单击保存。
刷新一下浏览器,挂锁成功!
相关文章: