首先声明,转载自:https://my.oschina.net/kimver/blog/1634575,感谢原创作者,我修改了部分内容以及Nginx的配置。搭建过程从头run了一遍
阅读目录:
1. 摘要
2. 使用 acme.sh 的方式
3. 配置Nginx
4. 注意事项及说明
1. 摘要
摘要: 申请Let's Encrypt通配符HTTPS证书
Let's Encrypt 发布的 ACME v2 现已正式支持通配符证书,接下来将为大家介绍怎样申请,Let's go.
注 本教程是在centos 6下操作的,其他Linux系统大同小异。
Nginx的搭建:https://my.oschina.net/u/3209432/blog/1581391
Nginx配置Https: https://my.oschina.net/u/3209432/blog/1595521
2. 使用 acme.sh 的方式
2.1 获取acme.sh
[root@loubobooo ~]# curl https://get.acme.sh | sh
如下图所示安装成功
1.1 执行以下命令
[root@loubobooo ~]# source ~/.bashrc [root@loubobooo ~]# acme.sh
2.开始获取证书
acme.sh
强大之处在于,可以自动配置DNS,不用去域名后台操作解析记录了,我的域名是在阿里注册的,下面给出阿里云解析的例子,其他地方注册的请参考这里自行修改:传送门
请先前往阿里云后台获取App_Key
跟App_Secret
传送门,然后执行以下脚本
# 替换成从阿里云后台获取的密钥 [root@loubobooo ~]# export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje" [root@loubobooo ~]# export Ali_Secret="jlsdflanljkljlfdsaklkjflsa" # 换成自己的域名和二级域名 [root@loubobooo ~]# acme.sh --issue --dns dns_ali -d loubobooo.com -d *.louboboo.com
这里是通过线程休眠120秒等待DNS生效的方式,所以至少需要等待两分钟
注:这里会生成4个文件
[Sat Mar 17 13:59:22 CST 2018] Your cert is in /root/.acme.sh/loubobooo.com/xxx.com.cer
[Sat Mar 17 13:59:22 CST 2018] Your cert key is in /root/.acme.sh/loubobooo.com/xxx.com.key
[Sat Mar 17 13:59:22 CST 2018] The intermediate CA cert is in /root/.acme.sh/xxx.com/ca.cer
[Sat Mar 17 13:59:22 CST 2018] And the full chain certs is there: /root/.acme.sh/xxx.com/fullchain.cer
到了这一步大功告成!
第一次成功之后,acme.sh
会记录下App_Key跟App_Secret,并且生成一个定时任务,每天凌晨0:00自动检测过期域名并且自动续期。对这种方式有顾虑的,请慎重,不过也可以自行删掉用户级的定时任务,并且清理掉~/.acme.sh文件夹就行
3. 配置Nginx
[root@loubobooo ~]# vim /usr/local/nginx/conf/vhost/download.xxx.com.conf
#将所有http协议内容重定向到https协议
server {
listen 80;
server_name download.xxx.com;
rewrite ^ https://$server_name$request_uri? permanent;
}#https协议
server {
listen 443;
server_name download.xxx.com;ssl on;
ssl_certificate /root/.acme.sh/xxx.com/fullchain.cer;
ssl_certificate_key /root/.acme.sh/xxx.com/loubobooo.com.key;
ssl_trusted_certificate /root/.acme.sh/xxx.com/ca.cer;autoindex on;
access_log /usr/local/nginx/logs/access.log combined;
error_log /usr/local/nginx/logs/error.log;
index index.html index.htm index.jsp index.php;
#error_page 404 /404.html;
location / {
root /ftpfile/setup;
}
}
4. 注意事项及说明
注意事项:
配置Nginx时,需要在Nginx编译时添加ssl模块
说明:本次使用
操作系统:CentOS 6.8 64位
Nginx版本:1.13.9