二级域名使用较多时,一个个申请证书有点麻烦。泛域名证书一次性解决。
申请SSL免费证书
生成SSL最佳配置
https://ssl-config.mozilla.org/
Install
curl https://get.acme.sh | sh -s [email protected]
alias acme.sh=~/.acme.sh/acme.sh
# 证书机构二选一,acm3.0默认是 zerossl , Let‘s Encrypt 能支持泛域名证书
acme.sh --set-default-ca --server zerossl
acme.sh --set-default-ca --server letsencrypt
acme.sh --set-default-ca --server buypass
设置邮箱,用于接收通知。
设置alias,方便后续使用。
你的服务器如果是在国内,有可能因不能访问github导致安装不成功。
手动DNS方式申请证书
手动在域名上添加一条txt解析记录,验证域名所有权。
这种方式的好处是, 你不需要任何服务器, 不需要公网ip, 只需要dns的解析记录即可完成验证。
坏处是,如果不同时配置 Automatic DNS API,使用这种方式 acme.sh 将无法自动更新证书,
每次都需要手动再次重新解析验证域名所有权。
以申请*.mosong.cc
泛解析证书为例,*
改为具体二级域名则是申请单域名证书。
步骤如下:
-
申请
acme.sh --issue --dns -d "*.mosong.cc" --keylength ec-256 --yes-I-know-dns-manual-mode-enough-go-ahead-please
–keylength表示密钥长度,设置证书类型是ecc还是rsa,后面的值可以是 ec-256 、ec-384、2048、3072、4096、8192,带有 ec 表示生成的是 ECC 证书,没有则是 RSA 证书。在安全性上 256 位的 ECC 证书等同于 3072 位的 RSA 证书。
会生成相应的解析记录显示出来, 你需要在你的域名管理面板中添加这条txt记录。
解析完成后,继续下一步。 -
验证
acme.sh --renew -d "*.mosong.cc" --yes-I-know-dns-manual-mode-enough-go-ahead-please
验证域名所有权并生成证书,如果验证不成功,可以等会儿(等DNS解析生效)再试一次。
-
安装
cd /root/.acme.sh/*.mosong.cc_ecc acme.sh --install-cert -d *.mosong.cc --key-file c.key --fullchain-file c.pem --uninstall-cronjob
安装后,会生成
c.key
与c.pem
两个文件。- 使用方法1:修改Nginx配置文件指定到此目录。
- 使用方法2:拷贝到Nginx证书目录。很多时候是需要部署到其它机器上,只有使用此方式。
最后使用
nginx -s reload
重新加载配置。