什么是HTTPS
HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

HTTPS:全称:Hyper Text Transfer Protocol over Secure Socket Layer,则是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

如何使用HTTPS
一般情况下,要使用HTTPS协议,需要有一张被信任的 CA ( Certificate Authority )也就是证书授权中心颁发的 SSL 安全证书,并且将它部署到你的网站服务器上。一旦部署成功后,当用户访问你的网站时,浏览器会在显示的网址前加一把小锁,表明这个网站是安全的,当然同时你也会看到网址前的前缀变成了 https ,不再是 http

获取SSL证书
理论上,我们自己也可以手动制作一个 SSL 安全证书,但是我们自己签发的安全证书浏览器信任,所以我们需要被信任的证书授权中心( CA )签发的安全证书。而一般的 SSL 安全证书签发服务都需要付费,且价格昂贵,不过为了加快推广 https 的普及, EEF 电子前哨基金会、 Mozilla 基金会和美国密歇根大学成立了一个公益组织叫 ISRG ( Internet Security Research Group ),这个组织从 2015 年开始推出了 Let’s Encrypt 免费证书。这个免费证书不仅免费,而且还相当好用,所以我们就可以利用 Let’s Encrypt 提供的免费证书部署 https 了。

Let’s Encrypt
Let’s Encrypt提供了免费的证书申请服务,同时也提供了官方客户端 Certbot,打开首页,就可以得到官方的安装教程。官方教程给出了四种常用服务器和不同的Linux、Unix的安装使用方案
下面我将会介绍一个通用的安装方案:

一、新申请HTTPS证书
1、使用以下命令下载Certbot客户端并授予其可执行权限:

wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto

2、输入以下命令,其中,test.org请替换为需要申请证书的域名,如果多个域名可以在-d后面继续添加 -d "test.org" dns-01表示根据后续给出的TXT记录增加一条解析:

./certbot-auto certonly  -d "*.test.org" --manual --preferred-challenges dns-01  --server https://acme-v02.api.letsencrypt.org/directory

3、在跳出如下说明后,填入自己的邮箱:

4、这步需要填“A”同意才能进行下一步操作

5、这一步需要填“Y”同意分享邮箱地址才能进行下一步操作:
5ecc7af1aa0ea.png
6、填“Y”同意后进行下一步操作:

7、将给出的记录填入域名解析中,类型为TXT

域名解析如图所示,填写完成后过几分钟待解析生效再执行下一步操作,完成后会提示证书位置:

二、证书到期更新
1、直接在申请证书的服务器上使用以下命令更新:

 certbot-auto renew

三、Nginx的应用
1、在Nginx配置中 添加秘钥的存放位置


Bigyong
28 声望13 粉丝