一、准备
- 一台服务器
- 一个域名
二、安装AdGuardHome
到AdGuardHome的Github下载相应平台的Release,解压后将二进制文件放到指定目录中(本文以/opt/adguardhome为例。
- 安装AdGuradHome服务:
$ sudo /opt/adguardhome/AdGuardHome -s install
安装完成后使用浏览器http://[服务器IP]]:3000即可打开管理网页开始根据向导开始设定。
三、使用Let's Encrypt为域名签发证书
-
安装Certbot
$ sudo apt install certbot -
使用Certbot为域名签发证书(电子邮件和域名根据实际情况进行调整)
$ sudo certbot certonly --standalone -n --agree-tos --email [email protected] --preferred-challenges http -d dns.example.com
证书签发完成后,Certbot会输出证书存储路径和证书有效期。另外,使用以上命令签名时候,会使用到80端口做验证,所以需要保证服务器的80端口处于可用状态,有了以上两个证书存放的路径以后,回到AdGuardHome管理界面,在设置 - 加密设置中,勾选启用加密,在下方填入证书路径并保存。设置完成后便可通过https://[服务器域名]/dns-query使用DoH服务。
四、设置自动为域名证书续期
- 先测试证书能否自动更新,以下命令用于测试,并不会实际执行更新操作
$ sudo certbot renew --dry-run - 如测试无问题,接下来在计划任务重加入每两个月自动更新证书
$ crontab -e - 在文件末尾追加以下内容并保存退出
0 0 15 */2 * /usr/bin/certbot renew --quiet
设置完成后,每隔两个月的15日便会自动续签证书。