加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

如何一步步构建安全的 HTTPS 站点

发布时间:2019-04-03 07:39:41 所属栏目:教程 来源:IT之鹰
导读:副标题#e# 通常一个 web 站点开启 HTTPS ,以 nginx 为例,我们可以这样进行配置: server{ listen443sslhttp2; server_namewww.example.com; indexindex.htmlindex.htm; root/www/www; sslon; ssl_protocolsTLSv1TLSv1.1TLSv1.2; ssl_certificate/usr/loca

如果客户端之前已经连接,我们有办法在 1.2 中进行 1-RTT 连接,而在 TLS 1.3 中允许我们执行 0-RTT连接,如图所示:

当然,具体采用 TLS1.2 还是 TLS1.3 需要根据实际的业务场景和用户群体来决定,在较新版本的浏览器一般都支持最新的加密协议,而类似 IE 8 以及Windows xp 这种古老的浏览器和操作系统就不支持了。如果说你的用户是一些政府部门的客户,那么就不适合采用这种较新的技术方案了,因为据我所知很多政府部门的操作系统还是xp和 IE 8以下的版本,这会导致新协议无法在他们的操作系统中正常工作。因此你可以讲加密算法和加密协议多配置几个,向下兼容不同客户端。

第四,证书要从可靠的CA厂商申请,因为不可靠的厂商(比如不被主流浏览器信任的证书厂商)会乱修改证书日期,重复签发证书。此外即使是可靠的 CA 签发的证书也有可能是伪造的,比如赛门铁克之前就被曝出丑闻而被火狐和Chrome 惩罚,结果就是这些主流浏览器不在信任这些CA 机构签发的一部分证书。因此一旦发现证书不受信任要尽快替换。

第五,使用完整的证书链,如果证书链不完整,则很有可能在一些版本的浏览器上访问异常。

第六,使用HTTP/2,使用最新的 HTTP 2 可以提升网站的访问速度以及拥有更好的性能支持。

第七,保护证书私钥不被外泄。

第八,根据自己的业务需求选择合适的证书,证书分为自签证书、 DV、 EV 和OV 证书,一般来说只是需要进行简单的数据加密,采用 DV 证书即可,这类证书通常都可以免费申请,只需要进行简单的域名所有者权验证即可申请,而EV和OV证书一般价格昂贵,适合金融机构或针对数据加密有严格要求的单位使用,这类证书签发手续复杂,一般需要进行企业身份认证后才会签发。自签证书一般用户临时测试使用,不建议生产环境使用,因为它并不是受信任的CA 机构签发的,浏览器不会信任。

当我们配置完后,可以通过https://www.ssllabs.com/ssltest/ ,对你的 HTTPS 站点进行评分,如果是A+则说明你的站点安全性特别高。如图所示,如果评分不高,你可以查看具体的详情来针对你的站点进行更具体的优化。

最后,附上一份nginx 的配置,作为参考:

  1. server 
  2.  { 
  3.  listen 443 ssl http2 default_server; 
  4.  server_name www.example.com ; 
  5.  index index.html index.htm index.php; 
  6.  root /web; 
  7.  ssl on; 
  8.  ssl_certificate /nginx/ssl/awen/fullchain.cer; 
  9.  ssl_certificate_key /nginx/ssl/example/example.com.key; 
  10.  ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256:EECDH+CHACHA20:EECDH+AESGCM:EECDH+AES:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!KRB5:!aECDH:!EDH+3DES; 
  11.  ssl_prefer_server_ciphers on; 
  12.  ssl_protocols TLSv1.2 TLSv1.3; 
  13.  ssl_session_cache shared:SSL:50m; 
  14.  ssl_session_timeout 1d; 
  15.  ssl_session_tickets on; 
  16.  resolver 114.114.114.114 valid=300s; 
  17.  resolver_timeout 10s; 
  18.  add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"; 
  19.  add_header X-Frame-Options deny; 
  20.  add_header X-Content-Type-Options nosniff; 
  21.  add_header CIP $http_x_real_ip; 
  22.  add_header Accept-Ranges bytes; 
  23. server { 
  24.  listen 80; 
  25.  server_name _; 
  26.  server_name www.example.com ; 
  27.  return 302 https://$host$request_uri; 

好了,以上就是我给大家分享的关于 HTTPS 站点的优化建议。

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读