Let‘s Encrypt
1、Let's Encrypt简介
Let's Encrypt —— 是一个由非营利性组织互联网安全研究小组(ISRG)提供的免费、自动化和开放的证书颁发机构(CA),简单的说,就是为网站提供免费的 SSL/TLS 证书。互联网安全研究小组(ISRG):ISRG是美国加利福尼亚州的一家公益公司,成立于2013年5月,第一个项目是Let's Encrypt证书颁发机构。
Let’s Encrypt 使用 ACME 协议来验证您对给定域名的控制权并向您颁发证书。要获得 Let’s Encrypt 证书,您需要选择一个要使用的 ACME 客户端软件。Let’s Encrypt 不控制或审查第三方客户端,也不能保证其安全性或可靠性。官方推荐使用 Certbot 客户端来签发证书,官网:https://certbot.eff.org/
ACME协议:
- Automatic Certificate Management Environment=ACME,自动认证管理环境协议
- ACME协议的基本思路是:
- 在你服务器上生成一次性的随机特征数据(nonce)
- 然后通过Let’s Encrypt的服务器核对这个数据
- 核对成功发放证书
使用前提:
- 域名,它会生成指定域名的证书
- 在域名指向的服务器上能访问https
- Linux环境
2、环境准备
Certbot的两种工作方式:
Standalone 方式:
certbot 会自己运行一个 web server 来进行验证。如果我们自己的服务器上已经有 web server 正在运行 (比如 Nginx 或 Apache ),用 standalone 方式的话需要先关掉它,以免冲突。
Web root 方式:
certbot 会利用既有的 web server,在其 web root目录下创建隐藏文件,Let’s Encrypt 服务端会通过域名来访问这些隐藏文件,以确认你的确拥有对应域名的控制权。
安装Nginx,Nginx位于第三方的yum源里面,而不在Centos官方yum源里面
#安装RHEL
sudo yum install epel-release
#yum更新
yum update
yum install -y nginx
安装wget
yum -y install wget
下载Certbot客户端
#下载
wget https://dl.eff.org/certbot-auto
#添加执行权限
chmod a+x ./certbot-auto
编辑nginx的配置文件
server {listen 80 default_server;listen [::]:80 default_server;#1.配置合法域名server_name yuanjing.com;#2.配置应用根目录root /usr/share/nginx/html;
}
3、生成并配置证书
使用certbot-auto命令,生成证书
#域名必须真实有效
./certbot-auto certonly --webroot --email yuanjing@lagou.com -w /usr/share/nginx/html/ -d [填写合法域名的地址]
生成的证书放在/etc/letsencrypt/live/[网站域名]下
例如:/etc/letsencrypt/live/yuanjing.com
文件名 | 内容 |
cert.pem | 服务端证书 |
chain.pem | 浏览器需要的所有证书但不包括服务端证书,比如根证书和中间证书 |
fullchain.pem | 包括了cert.pem和chain.pem的内容 |
privkey.pem | 证书的私钥 |
一般情况下fullchain.pem和privkey.pem就够用了
[centos@yuanjing ~]$ tree /etc/letsencrypt/
......
├── live
│ └── yuanjing.com (别名,最终,看自己域名)
│ ├── cert.pem -> ../../archive/yuanjing.com/cert1.pem
│ ├── chain.pem -> ../../archive/yuanjing.com/chain1.pem
│ ├── fullchain.pem ->
../../archive/yuanjing.com/fullchain1.pem
│ ├── privkey.pem ->
../../archive/yuanjing.com/privkey1.pem
│ └── README
......
配置nginx支持https访问
server {listen 443 ssl http2;server_name yuanjing.com; # 设置域名ssl_certificate "/etc/letsencrypt/live/yuanjing.com/fullchain.pem"; # 证书ssl_certificate_key "/etc/letsencrypt/live/yuanjing.com/privkey.pem"; # 私钥
http 跳转到 https
在网站在访问http时都会将http请求重定向到https,只需在nginx中配置下。配置如下
server {listen 80 default_server;server_name yuanjing.com www.yuanjing.com;return 301 https://$server_name$request_uri; # 这个是固定的
}
重启Nginx后生效
nginx -s reload
4、更新证书
默认证书有效期是3个月,所以需要续期。
设置每月1日的凌晨3点就会执行一次所有域名的续期操作
#创建定时任务
sudo crontab -e
#设置定时策略
#/home/ubuntu/soft/certbot-auto:certbot所在的目录
0 3 1 * * /home/ubuntu/soft/certbot-auto renew --renew-hook "sudo nginx -s reload"
#查看一下是否存在刚才添加的定时命令
sudo crontab -l
Let‘s Encrypt相关推荐
- .NET Core 常用加密和Hash工具NETCore.Encrypt
前言 在日常开发过程中,不可避免的涉及到数据加密解密(Hash)操作,所以就有想法开发通用工具,NETCore.Encrypt就诞生了.目前NETCore.Encrypt只支持.NET Core ,工 ...
- 实现nginx上配置免费证书Let's Encrypt
Let's Encrypt 的免费证书有效期为三个月,不过可以免费续期,写一个脚本定期更新即可. 准备一台nginx 服务器 ,将以下三个附件上传到你的nginx服务器. 1.下载脚本文件,wget ...
- 申请 Let's Encrypt 通配符 HTTPS 证书
一.背景知识 1.1.什么是通配符证书 通配符证书,又叫泛域名证书,一张通配符的证书可以保护一个域名下同级子域名,使他们都变成 https 加密链接,不需要配置一个子域名再申请一个新证书了,而且不限制 ...
- let's encrypt部署免费泛域名证书
环境说明 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@localhos ...
- Let's Encrypt 免费通配符 SSL 证书申请教程——但是也需要email,域名所有权等,如果是黑产用的话会这样用吗?会不会暴露自己身份???...
Let's Encrypt 免费通配符 SSL 证书申请教程 from:https://blog.csdn.net/English0523/article/details/79608464 2018 ...
- 阿里云Ubuntu 14.04 + Nginx + let's encrypt 搭建https访问
用云旺的做IM,ios端图片地址只能是https的才能显示,所以为服务器增加证书 Let's Encrypt是一个免费并且开源的CA,且已经获得Mozilla.微软等主要浏览器厂商的根授信 1. 下载 ...
- Let's Encrypt 免费SSL配置
2019独角兽企业重金招聘Python工程师标准>>> 官方网址 https://letsencrypt.org/ UPDATE: [2018/10/26]如果创建证书时出现 Cli ...
- 【HTTPS】Let's Encrypt certbot renew
背景: web应用 有IPv4和IPv6地址,但是未在同一台服务器上 使用 Let's Encrypt,当证书过期之后,执行certbot renew 时,报错了, 报错 please make su ...
- 使用Let`s encrypt 免费的https 证书
在iOS上以前暂时屏蔽https使用http的接口,将在未来被苹果拒绝: 之前传苹果会在2017年1月1日强制要求支持https,但是现在苹果又延迟该计划了 https://developer.app ...
- ca服务器证书鉴定计划,Let’s Encrypt 项目计划自动化地提供免费的 CA 证书
Let's Encrypt Mozilla.思科.Akamai.IdenTrust.EFF 和密歇根大学研究人员联合宣布了 Let's Encrypt CA 项目,计划为网站提供免费的基本 SSL 证 ...
最新文章
- 拿到腾讯字节快手 offer 后,他的 LeetCode 刷题经验在 GitHub 火了!
- html左右阴影效果图,css实现横向菜单带阴影效果(不用滤镜实现)
- layui 怎么设置点击图片放大_layui实现一个图片点击放大
- Python:执行精确的浮点数运算
- python 数据分析工具之 numpy pandas matplotlib
- centos6安装mysql并远程连接_如何开启phpstudy中mysql的远程连接
- 2020数学建模国赛C题思路
- LeetCode 277. 搜寻名人(思维题)
- android前端开发 布局学习
- 难住了N个面试者,http协议无状态中的 状态 到底指的是什么?!
- vscode在windows10系统下进行go语言编程(无法代码提示)
- 小白都能看懂的numpy与pandas中axis解释
- 机器学习 —— 神经网络(matlab)
- i2c驱动之调用ioctl函数进行读写at24c08
- Python爬取豆瓣各类电影排行榜
- drm debug log with drm.debug=6 debug
- 日本经验丨被忽视的老年玩具市场需求潜力巨大,独家解析产品创新三大方向
- 排列组合 C(n,m)
- JavaSE基础阶段学习笔记
- A005:查找文件之find, locate, whereis, which, type