使用acme.sh免费申请泛域名SSL证书

使用acme.sh免费申请泛域名SSL证书

  •  2018 年 12 月 19 日
  •  440
  •  Docker HTTPS SSL 

环境准备

  • Docker,安装方法猛戳Linux环境下安装Docker
  • 对应DNS的AccessKey,笔者使用的是阿里云DNS,获取步骤:控制台 -> 头像 -> accesskeys。支持的各种DNS看这里

运行镜像

docker run -itd --name acme.sh \
-e Ali_Key=L************7 \
-e Ali_Secret=W******************B \
-v /home/docker/nginx/cert/acme.sh:/acme.sh neilpang/acme.sh daemon

DAEMON:守护进程方式启动,证书到期自动更新

获取证书

docker exec -it acme.sh --issue --dns dns_ali -d xxx.com -d *.xxx.com

配置Nginx

在Nginx的conf.d目录下创建ssl.conf文件并编辑之(配置fullchain.cer和xxx.com.key文件即可,这两个文件在acme.sh挂载目录下生成):

# ssl.conf
server {
	listen	443 default	ssl;
	ssl_certificate /xxx/xxx/fullchain.cer;
	ssl_certificate_key /xxx/xxx/xxx.com.key;
	ssl_session_timeout 5m;
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_prefer_server_ciphers on;
}

其它配置文件:

# proxy.conf
server {
    listen	443 ssl;
    server_name  xxx.com www.xxx.com;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass https://xxx.xxx;
    }
}

统一把HTTP请求转为HTTPS

# redirect.conf
server {
	listen 80;
	server_name *.xxx.com;
	return 301 https://$host$request_uri;
}

如此这般就可以用HTTPS愉快的访问我们的网站了~

扫一扫分享到微信

已有 条评论
写评论