使用Let\'s Encrypt 生成免费的ssl证书的详细过程
参考连接: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.创建用户私钥和域名私钥
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 #出现是绿色的说明完成啦