acme.sh 申请通配符证书

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)
acme.sh 申请通配符证书_第1张图片


证书过期了,可以更新证书
/root/.acme.sh/acme.sh --renew -d example.com --force
最后重启nginx

Let’s Encrypt 官方文档
   --------end-------

你可能感兴趣的:(https,nginx,通配符,https,证书,docker)