前言
我们知道,Nginx Proxy Manager 反代域名使用 HTTPS,需要 SSL 证书,我们可以用 NPM 的一键申请证书,但这样每个域名都需要单独申请,太麻烦了。这里介绍一种申请泛域名的 SSL 证书,一级域名、二级域名都共用一个证书,省时省事。
验证方式
NPM 中 Let’s Encrypt
证书申请有两种验证方式:一种是基于 HTTP
的验证方式,另一种是基于 DNS
的验证方式。
HTTP-01 验证
关于 HTTP-01 验证的详细描述可以看官方文档。
这种方式最简单,不需要任何关于域名配置的额外知识,但是必须使用 80 端口,绝大部分人可能用不了,所以这里就不说了。
DNS-01 验证
关于 DNS-01 验证的详细描述可以看官方文档。
此验证方式要求您在该域名下的 TXT 记录中放置特定值来证明您控制域名的 DNS 系统,这需要您的 DNS 提供商提供 API。
申请 SSL 证书
进入 NPM,点击SSL Certificates - Add SSL Certificate - Let's Encrypt
,输入以下配置:
Domain Names
:输入一级域名和泛域名,example.com 和 *.example.comEmail Address for Let's Encrypt
:选择 Cloudflare 登录邮箱;
点击 Use a DNS Challenge 使用 DNS 申请,DNS Provider 选择 Cloudflare,下一步就是申请 Cloudflare API Token,可以先往下看。
点击“I Agree to the Let’s Encrypt Terms of Service”,然后点击“Save”,就会自动申请 SSL 证书了。
申请 Cloudflare API Token
打开 Cloudflare 官网并登录账号,在页面右上角的个人头像下拉菜单中点击“我的个人资料”。切换到“API 令牌”,点击“创建令牌”;
在 “API 令牌模板”中选择“编辑区域 DNS”后面的“使用模板”;
进入模板之后选择需要控制的域名之后下一步并创建令牌;
此时已经添加了令牌权限并生成了令牌,把生成结果填入 NPM 的dns_cloudflare_api_token
即可。
最后一行可以看到 SSL 证书已经申请完成,有效期3个月,到期会自动续期。