当前位置:网站首页>Let‘s Encrypt
Let‘s Encrypt
2022-07-24 21:58:00 【悠然予夏】
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 [email protected] -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就够用了
[[email protected] ~]$ 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边栏推荐
- Gradle learning set integration
- Helm -- a powerful package management tool for kubernetes applications
- EL & JSTL: JSTL summary
- Win10 解base64
- Icassp 2022 | KS transformer for multimodal emotion recognition
- 图结构的实现,从点到边再到图
- The kettle job implementation runs a kettle conversion task every 6S
- 在机器人行业的专业人士眼里,机器人行业目前的情况如何?
- Integrated swagger learning
- From violent recursion to dynamic programming, memory search
猜你喜欢

单调栈结构练习——子数组最小值的累加和

Gradle learning - gradle advanced instructions

实现redis哨兵,模拟master故障场景

AC自动机

Glidemodule appglidemodule and generated API details

Oracle中实现对指定数据分组且获取重复次数

Kubernetes v1.24 is deployed based on containerd

Implementation of graph structure, from point to edge and then to graph

VScode默认输出到调试控制台如何调整到终端以及两者中的乱码问题

My love lesson 2 - remove webpage pop-up
随机推荐
From A76 to A78 -- learning arm microarchitecture in change
A compatible, smaller and easy-to-use web font API
Function default parameter pit avoidance Guide
Segment tree,,
《JUC并发编程 - 高级篇》05 -共享模型之无锁 (CAS | 原子整数 | 原子引用 | 原子数组 | 字段更新器 | 原子累加器 | Unsafe类 )
C # review the entrustment and event
PCL点云处理之直线点集投影规则化(五十六)
The kettle job implementation runs a kettle conversion task every 6S
《ArchSummit:珍爱微服务底层框架演进》
从A76到A78——在变化中学习ARM微架构
Win10 solution Base64
Luogu p2024 [noi2001] food chain
ASP.NET Core 6.0 基于模型验证的数据验证
Pyqt5 uses qfile and qdatastream to read and write binary files
Time series data in industrial Internet of things
Gradle learning - getting started with gradle
Which is the best interface documentation tool at home and abroad?
Gradle learning - gradle advanced instructions
PCL point cloud processing to find the two endpoints of the line point set (57)
Im instant messaging develops ten million level concurrent long connection Gateway Technology