第一种方法是自行到国内云服务商等处申请 SSL 证书。
你也可以使用以下命令申请(由 acme.sh 提供技术支持,感谢 Let's Encrypt)。
Let's Encrypt 现已支持通过 DNS 验证来申请通配符证书,本例以通配符证书为例。
在 https://github.com/Neilpang/acme.sh/tree/master/dnsapi 找到自己域名的 DNS 服务商代码,例如
-
dnspod.cn代码为dns_dp -
GoDaddy.com代码为dns_gd
...
根据 DNS 服务商,自行在 .env 文件设置相关变量
-
dnspod.cn
# [DNSPOD] DNS_TYPE=dns_dp DP_Id= DP_Key= -
GoDaddy.com
# DNS 服务商 DNS_TYPE=dns_gd GD_Key=sdf... GD_Secret=sdf...
...
除了 acme.sh 原始参数外,支持以下参数
-
--httpd -
--rsa
$ ./lnmp-docker ssl example.com -d *.example.com -d t.example.com -d *.t.example.com [--debug]特别提示,
*.example.com的证书不支持example.com所以一个主域要写两次
特别提示,第一个网址不用加
-d参数,后面的需要加-d参数
若你的网站服务器不是 NGINX 而是 HTTPD,那么请加上 --httpd 参数,即
$ ./lnmp-docker ssl example.com -d *.example.com --httpd默认申请 ECC 证书,你可以加上 --rsa 来申请 RSA 证书,即
$ ./lnmp-docker ssl example.com -d *.example.com --rsa./lnmp/config/nginx/ssl/*
$ ./lnmp-docker ssl-self khs1994.com *.khs1994.com 127.0.0.1 localhost生成的 ssl 文件位于 ./config/nginx/ssl-self。
务必在浏览器导入根证书(./config/nginx/ssl-self/root-ca.crt)。
https://*.t.khs1994.com均指向127.0.0.1你可以使用这个网址测试https。
请查看 ./config/nginx/demo-*.conf