使用Let‘s Encrypt为网站添加HTTPS

超文本传输安全协议英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,也被称为HTTP over TLSHTTP over SSLHTTP Secure)是一种网络安全传输协议。在计算机网络上,HTTPS经由超文本传输协议(HTTP)进行通信,但利用SSL/TLS来对数据包进行加密。HTTPS开发的主要目的,是提供对网络服务器的身份认证,保护交换数据的隐私与完整性。

与普通的 HTTP 连接相比,使用 HTTPS 可以提供更高的隐私性和安全性,降低信息被第三方拦截或滥用的风险,比如常见的 ISP 广告劫持。

HTTPS的安全基于对预先安装在浏览器中的证书颁发机构的信任:

  • 用户浏览器正确实现了HTTPS且安装了可信的证书颁发机构(一般都是比较大型的机构)
  • 用户访问 HTTPS 网站,该网站提供了上述机构签发的证书
  • 用户浏览器根据证书验证网站的真实性

部署 HTTPS 步骤:

  • 获取 SSL 证书,从证书签发机构获取证书,根据证书签发机构和种类的不同,费用从免费到几百、数千元不等,常见的收费证书机构有GeoTrust,Symantec,VeriSign,免费证书机构有Let’s Encrypt,StartSSL 等
  • 在 WEB 服务器上安装 SSL 证书
  • 修改网站,对相关页面或资源启用 HTTPS

由于本站是个人网站,使用免费的 Let’s Encrypt 证书即可,为了防止滥用,证书的有效期为3个月,到期后,可以通过定时任务刷新证书。

 

下面以CentOS7为例,介绍配置HTTPS方法:

1.安装证书生成工具Certbot

2.使用Certbot获取证书:

3.生成ssl dhparam:

4.使用Mozilla SSL Configuration Generator生成nginx配置:

值得注意的是 HSTS 的 Strict-Transport-Security头信息,当用户第一次通过 HTTPS 访问网站后,如果响应头中包含Strict-Transport-Security,浏览器会对声明的 max-age 有效期内后续的普通 HTTP 请求,强制使用 HTTPS,例如,后续访问 http: //aiddroid.com/page/2 会被重定向到https://aiddroid.com/page/2

5.reload nginx

再次访问,浏览器地址栏即可看到小绿锁

green-lock

6.添加定时任务以刷新证书

7.使用Qualys SSL Labs测试网站HTTPS等级

测试需要几分钟,如果评级过低,可根据提示进行相应优化

ssllab-test-result
ssllab-test-result

 

 

 

Related Posts

发表评论