参考连接:https://github.com/diafygi/acme-tiny

中文:https://hacpai.com/article/1487899289204

目前我了解可以生成免费证书的方法有两种:

方法一、阿里云购买免费的ssl证书

             特点:一个阿里云账户可以购买20个免费的ssl证书

                       每个有效期为1年

            步骤:注册一个阿里云账户,进入阿里云控制台,安全(云盾)--->CA证书服务(数据安全)---->购买证书--->选择   。。。。。。

             购买如下图:

         

 

方法二、使用Lets's Encrypt 

特点:安装简单,自动签发和管理证书

          对证书进行加密只能持续90天,所以需要经常更新它们。不过没关系,它是自动的!只需创建一个bash脚本并将其添加到crontab

          不支持内网服务器的域名,比如域名的解析地址为:192.168.x.x

  • 介绍

缺点:

        1.有效期为90天,过期得重新生成

         2.需要生成证书的域名,必须要在外网可以访问,解析到外网的

 

Let’s Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,目的就是向网站自动签发和管理免费证书,以便加速互联网由HTTP过渡到HTTPS,目前Facebook等大公司开始加入赞助行列。

Let’s Encrypt已经得了 IdenTrust 的交叉签名,这意味着其证书现在已经可以被Mozilla、Google、Microsoft和Apple等主流的浏览器所信任,你只需要在Web 服务器证书链中配置交叉签名,浏览器客户端会自动处理好其它的一切,Let’s Encrypt安装简单,未来大规模采用可能性非常大。

Let’s Encrypt虽然还在测试当中,但是市场需求非常大,已经有非常多的朋友迫不及待地安装并用上了Let’s Encrypt。Let’s Encrypt向广大的网站提供免费SSL证书,不管是对于网站站长、互联网用户,还是对整个Web互联网,都是非常有利的,它有利于整个互联网的安全。

本篇文章主要作为记录,方便以后好查找资料,快速生成的免费SSL证书,并附上Apache和Nginx的SSL证书配置方法。

比如:我给域名: hongkong.devbei.cn 生成一个ssl证书

具体步骤

1.下载acme-tiny      https://github.com/diafygi/acme-tiny

   cd /mnt/home/webroot 

   git clone     https://github.com/diafygi/acme-tiny

2.创建用户私钥和域名私钥 

 cd acme-tiny

 mkdir ssl    #创建一个专门存放证书的目录,当然根据个人习惯而定

 cd ssl

openssl genrsa 4096 > account.key

openssl genrsa 4096 > hongkong.devbei.cn.key

3.生成域名 csr 文件

openssl req -new -sha256 -key hongkong.devbei.cn.key -subj "/CN=hongkong.devbei.cn" > hongkong.devbei.cn.csr

4.配置 web 站点的 challenge 文件 

mkdir -p /var/www/challenges/      #临时存放生成的字符串
#example for nginx
server {
 listen 80;
 server_name hongkong.devbei.cn;

 location /.well-known/acme-challenge/ {
 alias /var/www/challenges/;
 try_files $uri =404;
 }

 ...the rest of your config
}

5.获取签名证书

cd ../

[root@izj6c86xxp5p79vfwi838pz acme-tiny]# pwd 

/mnt/sort/acme-tiny

python acme_tiny.py --account-key ./ssl/account.key --csr ./ssl/hongkong.devbei.cn.csr --acme-dir /var/www/challenges/ > ./ssl/hongkong.devbei.cn.crt

 

6.证书生成好了之后,配置证书

 cd /mnt/sort/acme-tiny/ssl

   hongkong.devbei.cn.crt    

   hongkong.devbei.cn.key

 

nginx的配置

server {
    listen 443 ssl;
    server_name hongkong.devbao.cn;

    ssl_certificate ./certs/hongkong.devbei.cn.crt;
    ssl_certificate_key ./certs/hongkong.devbei.cn.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA;
    ssl_session_cache shared:SSL:50m;
    ssl_prefer_server_ciphers on;

........
}

7.测试

https://hongkong.devbei.cn   #出现是绿色的说明完成啦