LNMP Let's Encrypt免费通配符/泛域名SSL证书申请和配置

lnmp 1.5或更高版本已经添加了对通配符证书的支持,生成通配符证书和Let's Encrypt平常ssL证书命令有些差异
通配符证书命令是

lnmp dnsssl 域名dns服务商简称

普通证书是

lnmp ssl add

最好是使用域名DNS服务商的api,这样才能实现自动续期。

一、域名DNS服务商API方式生成SSL证书
这里以spaceship DNS API为例:
登录Spaceship后点击导航Launchpad--API管理器--添加API密钥
选择“自定义访问”→ 仅启用:

DNS 记录 - 读取
DNS 记录 - 写入

禁用所有其他权限。然后点击 创建API密钥
复制安全存储密钥(密钥不会再次显示)。

其他域名DNS服务商的API参数命令可以在文章后面表格里找,该项必须export,而且是严格区大小写!否则将提示You don't specify dnspod api key and key id yet.

通过表格可以知道,spaceship的简称为spaceship,我们也通过spaceship网站获取到了API KEYSECRTET KEY,下面需要在终端里将API操作所需的参数输出供程序使用,命令如下:

export SPACESHIP_API_KEY='8azEY0VMllj859ZqePH7'
export SPACESHIP_API_SECRET='JkZcYYVvSgwSAOXugXrBZ38nbhcanwiZvYP1MtTu0erI32Vmdxtcxn0tTGGL7SGW'

下面添加虚拟主机并生成通配符SSL证书

lnmp dnsssl spaceship

注意!spaceshipDNS服务商的简称,下面对照表中查找,别照抄
1.png
分别按提示输入域名、添加更多域名(多个域名空格隔开,如 *.2dan.cc *.test.2dan.cc)、网站目录、是否启用日志等选项,详细介绍可以看上图文字注释。

注意:如果要生成通配符/泛域名SSL证书,输入其他域名时不要输入www.2dan.cc的域名,否则将生成失败!!!
如果之前输出的API参数没问题的话,等几分钟就会生成完毕,并提示Generate SSL Certificate successfully.

二、使用域名DNS服务商API方式只生成SSL证书不创建网站配置文件

lnmp onlyssl spaceship

注意!spaceshipDNS服务商的简称
这里的spaceship和上述带配置文件的参数是一样的,只不过在添加过程中不需要输入网站目录、是否开启日志等选项。
模式下只创建SSL证书并不生成网站配置文件,方便用户在多个虚拟主机上使用同一个证书。自己可以另外 lnmp vhost addlnmp ssl add 创建SSL站点配置文件

域名DNS服务商名称、简称对照表:

https://github.com/acmesh-official/acme.sh/tree/master/dnsapi

文件名dns_spaceship.sh中的spaceship即为简称

域名DNS服务商API参数和开通API方法对照表:

https://github.com/acmesh-official/acme.sh/wiki/dnsapi
https://github.com/acmesh-official/acme.sh/wiki/dnsapi2