申请Let's Encrypt通配符HTTPS证书(转)

首先声明,转载自: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_KeyApp_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

猜你喜欢

转载自my.oschina.net/u/3209432/blog/1637837