客户端访问https时应无浏览器(含终端)安全警告信息;_Http升级Https(Let's Encrypt)...

300b1967533b57de82dd1dc534b61784.png

为什么要使用 HTTPS ?

1、HTTPS加密使网站速度更快!

首先强调速度是因为,一个网站的性能通常跟访客销售转化、页面加载时间对收入的影响等指标直接挂钩。这是一个被非常非常广泛记录的问题,有很多大型网站和工具可以展示HTTPS如何变得更快。

2、HTTP/2协议只支持HTTPS加密连接

所有主流浏览器只支持使用TLS1.2协议安全连接的HTTP/2协议。Chrome、火狐、Safari、Opera、IE和Edge都要求使用HTTPS加密连接,才能使用HTTP/2协议。这对网站所有者来说是另一个有利的推动因素。

3、HTTP页面将标记“不安全”

当用户访问网站时,没人想要浏览器上的红色警告,但是如果你的网站采用HTTP链接来传输数据,那红色警告将成为常态。

以前浏览器对不安全的HTTP页面没有任何标记,而含有部分不安全因素的HTTPS页面却显示安全警告,让人们误以为含有不安全因素HTTPS页面不如HTTP页面安全,这是非常错误的。谷歌和火狐将在标识上做进一步优化,区分HTTP不安全连接和HTTPS安全连接,谷歌Chrome将为所有 HTTP网站打红叉,用户可以在Chrome 48或者部分更老版本中体验到这项全新的功能;火狐浏览器将从 Firefox 的开发版 46 开始,对”使用非HTTPS提交密码”的页面进行警告。

4、HTTPS加密提升搜索排名

谷歌早在2014年宣布,将把HTTPS加密作为影响搜索排名的重要因素,并优先索引HTTPS网页。百度也公告表明,开放收录https站点,同一个域名的http版和https版为一个站点,优先收录https版;百度官方还表示,网站HTTPS加密不会对流量产生负面影响。在搜索引擎巨头的倡导和实践下,我们可以预见HTTPS加密将在未来产生越来越大的影响力。

5、HTTPS加密防止中间人流量劫持

当你的网站通过HTTP连接传输网页内容时,WiFi节点、运营商、路由器等任何传输节点都可以对网站传输内容进行劫持、篡改、恶意注入等,比如早已见惯的广告弹窗。很多人已经对此麻木,并认为流量劫持不会造成什么损失,但是服务器采取HTTP不安全连接,其实是给黑客留下一道后门,可以向你的网页注入任意恶意内容,如盗号木马等,通过多种你无法觉察的方式窃取网站数据或向您的终端用户下手。HTTPS加密可以有效阻止流量劫持,尤其是全站HTTPS加密,封装所有流量加密传输,让中间人没有可乘之机。

6、iOS和安卓都要求使用HTTPS加密

苹果iOS的App Transport Security和谷歌安卓的usesCleartextTraffic manifest attribute,都推动移动APP默认使用HTTPS加密连接进行通信。苹果iOS强制APP使用HTTPS加密连接,并且要求非常严格,包括只使用TLS1.2协议,必须使用RSA2048位或ECC256位的公钥算法及SHA256签名算法等。如果你的内容或API接口需要在移动APP上使用,那么必须按要求使用HTTPS加密连接。

7、超级权限应用禁止使用HTTP连接

谷歌Chrome安全团队宣布,采用不安全连接访问浏览器特定功能,将被禁止访问,例如地理位置应用、应用程序缓存、获取用户媒体等。 采用不安全的HTTP连接访问用户位置信息并发送,可能造成用户信息的泄漏,确保这类超级权限功能全程使用HTTPS安全连接是使用这些功能的重要步骤。如果你最近使用了一些这样的功能并且希望继续在你的网站上使用,那么你必须让这些页面使用HTTPS加密连接。

使用Let’s Encrypt将HTTP升级成HTTPS

什么是 Let's Encrypt

Let's Encrypt 是一个由非营利性组织 互联网安全研究小组(ISRG)提供的免费、自动化和开放的证书颁发机构(CA)。

简单的说,借助 Let's Encrypt 颁发的证书可以为我们的网站免费启用 HTTPS(SSL/TLS) 。

Let's Encrypt免费证书的签发/续签都是脚本自动化的,官方提供了几种证书的申请方式方法,点击此处 快速浏览。

官方推荐使用 Certbot 客户端来签发证书,这种方式可参考文档自行尝试,不做评价。

我这里直接使用第三方客户端 acme.sh 申请,据了解这种方式可能是目前 Let's Encrypt 免费证书客户端最简单、最智能的 shell 脚本,可以自动发布和续订 Let's Encrypt 中的免费证书。

现今Let's Encrypt在市场上使用率已经占了80%以上并支持多种浏览器。

准备工作

  • 邮箱(用于做通知续费事项)
  • 域名(Let's Encrypt不支持使用IP来代替域名)
  • nginx(配置https访问)
  • Linux系统(Ubuntu)

开始升级

1.首先我们要安装git

apt-get update apt-get -y install git

2.克隆letsencrypt工程 到 /opt/letsencrypt

sudo lgit clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

3.关闭Nginx

sudo service nginx stop

4.进入到letsencrypt目录

cd letsencrypt

5.运行Standalone插件

sudo ./letsencrypt-auto certonly --standalone

提示: 执行./letsencrypt-auto certonly --standalone命令之后若没有出现错异常退出则会提示好下信息:

Saving debug log to /var/log/letsencrypt/letsencrypt.log

Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): 此处填你的email联系地址

——————————————————————————-

Please read the Terms of Service at

https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree

in order to register with the ACME server at

https://acme-v01.api.letsencrypt.org/directory

-------------------------------------------------------------------------------

(A)gree/(C)ancel: A

——————————————————————————-

Would you be willing to share your email address with the Electronic Frontier

Foundation, a founding partner of the Let's Encrypt project and the non-profit

organization that develops Certbot? We'd like to send you email about EFF and

our work to encrypt the web, protect its users and defend digital rights.

-------------------------------------------------------------------------------

(Y)es/(N)o: Y

之后会提示输入域名,本例域名为www.xx.com,若有多个子域名,以空格隔开。

Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel):www.xx.com

如果所有的都成功了将会看到下面的信息:

f92e2be76f4813c1e1b8be3ec6e1a86c.png

6.生成证文后,配置nginx

server {
    listen 443;
    server_name www.xx.com;
    ...
}

7.重启Nginx服务

sudo systemctl restart nginx.service

8.自动续费SSL证书

90天后早忘了https证书这事了,虽然Let's Encrypt会提前发邮件通知你,但还是写个脚本放crontab让它自动更新最为妥当:

  • 设置该文件可访问
 chmod +x /opt/letsencrypt/certbot-auto
  • 创建一个自动续期的脚本
vi /opt/letsencrypt/sslrenew.sh
 #!/bin/sh   
 /opt/letsencrypt/certbot-auto renew --quiet --no-self-upgrade   
:wq!   
  • 设置该脚本可以被访问
chmod +x /opt/letsencrypt/sslrenew.sh  
  • Certbot只有在证书到期前一个月才会进行更新,如果证书还没到期,它是不会进行更新的。所以设定让服务器每周日凌晨01:05分开始自动更新。
vi /etc/crontab   
05 1 * * 0  /opt/letsencrypt/sslrenew.sh   
:wq!   

注: 确保certbot定时是可以使用的,否则到时候是无法生效该脚本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值