centos7使用letsencrypt获取免费https证书

免费的证书 目前我就找到两个 可以申请的网站.

FreeSSl特点:
部分免费方便,申请过程简单,可以一次申请一年有效期。
centos7使用letsencrypt获取免费https证书
文章图片

官方地址
https://freessl.cn/apply?domains=xcx.cnxinfuli.com&product=trustasia01&from=

Let’s Encrypt特点:
SSL证书免费,申请过程简单,使用提供的certbot工具即可自动生成SSL证书。
虽然证书只有90天的有效期,但是可以通过脚本定期更新,配置好后即可长久使用。
官方地址
https://letsencrypt.org/zh-cn/


什么是 Let’s Encrypt?
部署 HTTPS 网站的时候需要证书,证书由 CA 机构签发,大部分传统 CA 机构签发证书是需要收费的,这不利于推动 HTTPS 协议的使用。
Let’s Encrypt 也是一个 CA 机构,但这个 CA 机构是免费的。也就是说签发证书不需要任何费用。Let’s Encrypt 由于是非盈利性的组织,需要控制开支,他们搞了一个非常有创意的事情,设计了一个 ACME 协议。
那为什么要创建 ACME 协议呢,传统的 CA 机构是人工受理证书申请、证书更新、证书撤销,完全是手动处理的。而 ACME 协议规范化了证书申请、更新、撤销等流程,只要一个客户端实现了该协议的功能,通过客户端就可以向 Let’s Encrypt 申请证书,也就是说 Let’s Encrypt CA 完全是自动化操作的。
任何人都可以基于 ACME 协议实现一个客户端,官方推荐的客户端是Certbot 。
什么是通配符证书
在没有出现通配符证书之前,Let’s Encrypt 支持两种证书。
1)单域名证书:证书仅仅包含一个主机。
2)SAN 证书:域名通配符证书类似 DNS 解析的泛域名概念,通配符证书就是证书中可以包含一个通配符(*.exmaple.com)。主域名签发的通配符证书可以在所有子域名中使用,比如 www.example.com、bbs.example.com。
申请通配符证书
Let’s Encrypt 上的证书申请是通过 ACME 协议来完成的。ACME 协议规范化了证书申请、更新、撤销等流程,实现了 Let’s Encrypt CA 自动化操作。解决了传统的 CA 机构是人工手动处理证书申请、证书更新、证书撤销的效率和成本问题。
ACME v2 是 ACME 协议的更新版本,通配符证书只能通过 ACME v2 获得。要使用 ACME v2 协议申请通配符证书,只需一个支持该协议的客户端就可以了,官方推荐的客户端是 Certbot
客户在申请 Let’s Encrypt 证书的时候,需要校验域名的所有权,证明操作者有权利为该域名申请证书,目前支持三种验证方式:
dns01:给域名添加一个 DNS TXT 记录。
http01:在域名对应的 Web 服务器下放置一个 HTTP well-known URL 资源文件。
tls-sni01:在域名对应的 Web 服务器下放置一个 HTTPS well-known URL 资源文件。

申请通配符证书,只能使用 dns验证的方式



概念都是抄来的,主要是不想通过域名管理的DNS TXT记录值获取证书。搜到的资料比较少,所以自己找了并整理了一下。





# 安装git并下载acme源码
yum -y install git
cd /opt
mkdir acme
cd acme
git clone https://github.com/letsencrypt/letsencrypt
centos7使用letsencrypt获取免费https证书
文章图片


下的比较慢可以用链接下载:https://pan.baidu.com/s/1COFa2S2x_MR6wkY_fg1vIg
提取码:i72c

关于webroot
certbot提供了两种安装配置方式:
webroot在已存在的Nginx上配置https
standalone certbot帮助创建带https的Nginx

【centos7使用letsencrypt获取免费https证书】
# 获取证书
1 standalone nginx 证书 需要服务器上的80端口不被占用否则会报下面的错
cd letsencrypt

./certbot-auto certonly --standalone --email hugo.xu@pdabc.com-d pdtest.aircourses.com

出现提示按照提示填写信息,有A选A,有Y选Y
centos7使用letsencrypt获取免费https证书
文章图片

关闭nginx 之后 再次执行生成了证书
证书位置
已申请的证书会放在 /etc/letsencrypt/archive下,而/etc/letsencrypt/live是指向最新版本的符号链接。web server中关于证书的配置建议指向live目录下的文件,以免证书更新后还需要更改配置。
每个域名一个目录,主要包含以下几个文件:
cert.pem申请的服务器证书文件
privkey.pem服务器证书对应的私钥
chain.pem除服务器证书外,浏览器解析所需的其他全部证书。比如根证书和中间证书
fullchain.pem包含服务器证书的全部证书链文件


centos7使用letsencrypt获取免费https证书
文章图片



centos7使用letsencrypt获取免费https证书
文章图片


配置好nginx证书之后 证书提示也是安全的 注意开启防火墙
证书配置参考
https://www.cnblogs.com/hupeng1234/p/9614231.html


2 webroot nginx 证书 适用于在生产上已经安装了nginx的情况
cd letsencrypt
#./certbot-auto certonly --webroot --agree-tos -v -t --email 邮箱地址 -w 网站根目录 -d 网站域名

./certbot-auto certonly --webroot --agree-tos -v -t --email hugo.xu@pdabc.com -w /ftp/www/ -d pdtest.aircourses.com

centos7使用letsencrypt获取免费https证书
文章图片


centos7使用letsencrypt获取免费https证书
文章图片


# 更新证书测试证书的有效期是否变更
./certbot-auto renew --force-renew
centos7使用letsencrypt获取免费https证书
文章图片

# 查看证书有效时间
openssl x509 -in fullchain.pem -noout -dates
centos7使用letsencrypt获取免费https证书
文章图片


# renew之后
centos7使用letsencrypt获取免费https证书
文章图片


# 证书检测地址
https://www.ssllabs.com/ssltest/analyze.html?d=pdtest.aircourses.com&latest


centos7使用letsencrypt获取免费https证书
文章图片

# 如果需要定时更新证书 可以在定时任务里填写傻瓜式脚本
0 0 1 * * root sh /root/ certbot-auto renew --force-renew&& nginx -s reload >/dev/null 2>&1


参考
https://www.jianshu.com/p/c6f6f277a23d
https://www.cnblogs.com/hupeng1234/p/9614231.html

    推荐阅读