acme.sh 申请通配符证书
docker中nginx为例
1、 不要忘记nginx的端口,映射80的同时还有443 ssl的端口
2、 安装socat
sudo apt-get install socat
// 或者
sudo yum install socat
3、 执行: curl https://get.acme.sh | sh
这一步可能出现问题:
ailed connect to raw.githubusercontent.com:443; 拒绝连接
解决:
通过IPAddress.com首页,输入raw.githubusercontent.com查询到真实IP地址 199.232.96.133
本地hosts文件加下边这行。
4.、申请证书需要验证域名
选择dns验证,详情看这里
以阿里云为例,点击这里获取
export Ali_Key="****************************"
export Ali_Secret="**************************"
5、 **执行: **
acme.sh --issue --dns dns_ali -d example.com -d *.example.com
然后看输出的内容可以确定证书所在位置,这时就申请成功了,然后在 nginx 等服务中进行对应的配置就可以了。
6、 映射证书到容器或者复制生成的证书到容器
docker cp /root/.acme.sh/example.com/ 容器id:/var/example.com
紧接着,生成 dhparam.pem(如果没有这个最后评分会是B)
openssl dhparam -out /root/.acme.sh/dhparam.pem 2048
同样,将此文件复制到容器下或者重新映射到容器
7、 修改nginx配置
server {
listen 80;
listen 443 ssl;
#下边这两行是新添加
ssl_certificate /var/example.com/fullchain.cer;
ssl_certificate_key /var/example.com/example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #为了升成A
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES;#为了升成A
ssl_prefer_server_ciphers on;#为了升成A
......
}
8、重启nginx 刷新页面会看到url前已经有了小绿锁
此时可以查看等级了
点击这个测试 (www.ssllabs.com)
证书过期了,可以更新证书
/root/.acme.sh/acme.sh --renew -d example.com --force
最后重启nginx
Let’s Encrypt 官方文档
--------end-------