HTTPS配置优化及注意点 原创 三杯水 2018-11-24 21:16:43 博主文章分类:负载均衡 ©著作权 文章标签 nginx ssl https openssl 优化 文章分类 运维 ©著作权归作者所有:来自51CTO博客作者三杯水的原创作品,请联系作者获取转载授权,否则将追究法律责任 Nginx官网反向代理时配置SSL证书,需要enable ngx_http_ssl_module模块,且需要支持的openssl开发版,默认配置参数比较少,但是可以根据实际情况对性能及安全性做成优化,具体如下! 一、SSL参数具体优化(这里只填主要的) 1. ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1; 苹果APP只支持TLSv1.2,会优先使用TLSv1.2,考虑到客户端兼容性,其他2各也加上 2. ssl_certificate_key ssl/minminmsn.comsha256.key; 私钥,服务器加密使用 3. ssl_certificate ssl/minminmsn.comsha256.crt; 证书,客户端解密使用,服务器证书和中间证书合并到一个文件,不需要根证书;另外1.7.3版本增加了新指令ssl_password_file可以支持带密码的私钥 4. ssl_session_cache shared:SSL:10m; 会耗费一部分内存,1m可以同时保存4000个会话,10m理论支持4万个会话,注意这个改动后需要重启 nginx才会生效,nginx启动时会申请资源,一般分配后比较难修改,内存空间不足时老的会话自动清理用于新的会话 5. ssl_session_timeout 60m; 考虑到APP操作习惯及安全性暂定60分钟,这个默认5分钟,一般为30分钟到4小时,如果是网页形式可以时间更长一般不超过24小时,多了有安全隐患 6. ssl_prefer_server_ciphers on; 让服务器选择要使用的算法套件,这样避免客户端选择低安全的算法造成*** 7. ssl_ciphers (共18个,ECDHE、DHE、AES开头个6个) "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4 "; 这18个算法是通过TLS版本和考虑到安全和性能及各种客户端兼容性默认选择ECDHE-RSA-AES128-GCM-SHA256,另外向哪些已经确认不安全的算法(如MD5、RC4、DES)会直接拒绝防止***根据客户端兼容性来降级安全算法,这里是安全和性能的核心,需要长期关注定期更新。另外特别注意的是HTTPS里面耗时的有两个地方一个是网络方面的RTT就是延时,一个是密钥交换优化需要在这两个地方下功夫 二、重点注意事项 1. SHA256签名算法支持最少XPSP3和Android2.3版本 2. 服务器密码套件配置优先,这样更安全 3. AES可以和GCM已验证套件一起使用,建议TLS协议中只使用GCM套件,不使用CBC套件 4. 前向保密 ECDHE套件 5. 性能GCM套件是最快的 6. SNI服务器名称指示,2006年后才加入TLS中,支持一个IP绑定多个域名,但是域名过多,证书也会变大,通配域名理论上不能超过上百域名;另外SNI有的客户端不支持例如IE7.0以下、Windows XP、Mac OS版要求最低X 10.5.6,早期Android版本,Nginx 0.5.32及后续版本,Openssl0.98f(0.98j开始默认支持SNI) 7. 会话缓存,例如一个小时,Twitter为例,12小时会更新一次密钥36小时候删除 8. 分布式会话缓存,https使用ip_hash,保证同一个用户始终分配到统一服务器上 9. Cookie安全问题 10. HSTS可以解决不安全到Cookie,HTTPS stripping***,相同网站内的混合内容问题。HSTS可以禁止浏览器使用无效证书。最好效果是包括子域名 11. CSP,允许网站控制在HTML页面中嵌入的资源用什么协议来对抗XSS*** 12. Openssl 1.0.1版本后开始支持,协议降级保护,使用Openssl最新库,性能明显优化,但是也不能盲目升级1.0.1版本后才出现心脏出血漏洞,1.0.2版本后会输出密钥强度,系统自带Openssl-1.0.1e版本,官网Openssl三大版本最新版本1.1.0c、1.0.2j、1.0.1u 13. 2010 Google数据TLS计算只占CPU负载的不到1%,每个连接只占不到10KB的内存,以及不到2%的网络开销 14. initcwnd初始拥塞窗口调优ip route change 59.151.116.115 route change initcwnd 10 15. net.ipv4.tcp_slow_start_after_idle = 0 改成0防止空闲时慢启动,HTTP长连接 16. 保持TCP连接时间越长,传输越快,有了长连接,可以最小化TLS开销,同时也提高了TCP性能。HTTP/1.1默认开启保持活动状态(keep-alive) 17. SNI 机制,解决server 单ip支持多host https 18. 尽早完成握手,cdn与客户端建立tls 19. 让服务器支持HTTP/2,Nginx 的版本需要大于1.9.5,同时OpenSSL的版本需要大于1.0.2j 20. Nginx不会对反向代理的后端做证书验证,当后端服务器是公网服务器就会有安全缺陷,Nginx 1.8.x版本后支持后端证书验证 21. 线上Tengine2.1.0版本(Nginx1.6.2),线上Tengine2.2.0版本(Nginx1.8.1)支持HTTP2.0,新版本出来20来天等稳定一段时间后再升级 22. HTTPS总共需要三个往返(TCP一个,TLS二个),RTT大约30毫秒的用户,HTTPS大约需要90毫秒完成连接建立,RTT要是比较大,这个建立连接的时间将会大得多 23. TLS建立连接的耗时对比:直接TLS连接设置3*90ms=270ms,通过CDN进行的TLS连接设置(使用连接池)3*5ms=15ms 用户到CDN节点RTT 5ms,CDN节点到服务器RTT 85ms,RTT为联合往返时间 24. TLS最大的成本除了延迟以外,就是用于安全参数协商的CPU密集型加密操作,即密钥交换,而密钥交换的CPU消耗很大程度上取决于服务器选择的私钥算法、密钥长度和密钥交换算法建议使用这个TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256(百度,京东,阿里都是这个),由于按照服务器端优先级为准,这个算法应放在ssl_ciphers:ECDHE-RSA-AES128-GCM-SHA256第一位 25. 证书链里证书越少越好,这样速度更快、 26. TLS回使DsS***更加容易成本更低,安全风险少量的可以限制连接,大量的需要资源超配或第三方援助才行 27. HSTS考虑到客户端兼容性和目前没有全部域名HTTPS,现在没有开启,后续再开启 28. 默认站点可以对不正确域名的请求返回错误消息listen 443 ssl default_server;不需要配置server_name,所有未匹配的请求都会进入默认站点server_name “”; 29. 服务器集群且不希望部署共享票证密钥时,可以ssl_session_tickets off;这个从1.5.9版本开始支持,默认不配置就行集群总体上会话票证弊大于利 30. Http转Https最节省资源的配置方法 return https://$host$request_uri; 31. TLS缓冲区调优ssl_buffer_size默认16KB,减少TLS缓冲区大小,可以显著减少首字节时间例如配置1400字节,注意会降低吞吐量,访问量大且数据为图片等大数据时的域名不需要降低 32. TLS使用情况监控日志可以加变量$ssl_session_reused(1.5.10后支持),根据会话恢复率可以了解TLS会话缓存的工作性能,并设置TLS日志格式 33. log_format ssl “$time_local $server_name $remote_addr $connection $connection_requests $ssl_protocol $ssl_cipher $ssl_session_id $ssl_session_reused”; 34. Ssl日志位置也分开 access_log /data/ssllog/dom 赞 收藏 评论 分享 举报 上一篇:从零开始创建自己的博客 下一篇:Prometheus配合Alertmanager报警系统 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 小程序https证书 越来越多的小程序开始使用HTTPS证书来保障用户数据的安全。小程序HTTPS证书是一种数字证书,用于在小程序应用中确保数据传输的安全性。 HTTPS 服务器 SSL http和https的区别是什么?https有什么优缺点? HTTP(Hypertext Transfer Protocol,超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当,被广泛地使用在WEB中。HTTPS (全称:Hypertext Transfer Protocol Secure ) HTTP HTTPS SSL 分支循环的三种语法及新手易错点 循坏语句的三种用法 while语句 循环语句 #include spring boot 1.x nginx前置https配置及注意点 首先参考nginx配置https并强制http自动跳转到https配置nginx的https证书。 然后在application.properties中加上属性如下: 其他就无需特殊处理可以了,websocket也无须特殊处理。 spring boot 1.x ngin postman模拟https请求注意点 设置postman postman @nginx及配置https 文章目录一、rewrite伪静态实例1.搭建discuz2.rewrite规则补充1)rewrite匹配优先级2)rewrite的全局变量二、HTTPS1.模 服务器 nginx 负载均衡 https discuz https原理及tomcat配置https方法 利用tomcat服务器配置https双向认证方法/步骤为服务器生成证书“运行”控制台,进入%JAVA_HOME%/bin目录,使用如下命令进入目录:cd “c:\ProgramFiles\Java\jdk1.6.0_11\bin” 使用keytool为Tomcat生成证书,假定目标机器的域名是“localhost”,keystore文件存放在“D:\home\tomcat.keystore”,口令 Tomcat https 4.4 特效优化注意点 4.4 特效优化注意点 游戏 贴图 右键 粒子特效 IPv6 的ACL配置及注意点 IPv6ACL规则如下:1 只能使用命名的ACL2 ACL序号匹配由小到大3 默认情况下,隐含permit icmp any any nd-na 和permit icmp anyany nd-ns 用于邻居发现协议的邻居通告和邻居请求,允许接口发送和接收IPv6邻居发现包。3 结尾默认隐含 deny ipv6 any any 4 使用命令ipv6 traff ipv6 acl 配置 Action"零配置"及注意点 通常,MVC框架都需要Web应用加载核心控制器,而对于Struts2来说,需要加载的就是struts2的核心控制器"FilterDispatcher"。只要Web应用加载了FilterDispatcher,FilterDispatcher将会加载应用的Struts2框架。 & 职场 休闲 Struts2 filter Nginx 配置https及wss 部署单页应用 SPA 时,我们通常使用 Nginx 做中间层进行转发代理。为了保护 Web https wss nginx nginx配置https openssl 理解HTTPS及配置Django+HTTPS开发环境 HTTP的弊端及HTTPS的由来众所周知HTTP协议是以TCP协议为基石诞生的一个用于传输Web内容的一个网络协议,在“网络分层模型”中属于“应用层协议”的一种.那么在这里我们并不研究该协议标准本身,而是从安全角度去探究使用该协议传输数据本身存在的安全问题:(1)、通信使用明文(不加密),内容可能被窃听;(2)、不验证通信方的身份,因此可能遭遇伪装;(3)、无法证明报文的完整行,所以可能被篡改.为 Python 程序员 http Django 服务器 SSL构建单双向https认证!https部署及注意事项! 1. SSL基本介绍我们常常在使用网上银行时看到的连接都是以“https”开始的,那么这个https是什么呢?这其实是表示目前连接使用了SS密:密钥只有 客户端 apache 服务器端 ids拓扑配置注意点 1.sw处配置交换机端口镜像sw(config)#monitor session 1 source int fa0/0 , fa0/sw(config)#monitor session 1 destination int fa0/2 2.管理界面 interface configuration--interface开启G0/1 呈enable状态3.analysis 职场 ids 休闲 brocade MCT配置注意点 MCT主要优势:1) 提供链路层面和交换机层面的冗余2) 增加链路流量运载能力,因为可以使用冗余链路,相比STP无法使用冗余链路3) 一旦链路和交换机发生故障,提供毫秒级流 职场 休闲 MCT brocade 虚拟交换机 oracle监听配置注意点 如果在HOST关键字中有一个主机名,则多个IP不能使用同一个监听端口。不过,关键字(IP=FIRST)可以解决这个问题。如:(ADDRESS = (PROTOCOL = TCP) (HOST = capaa) (PORT = 1521) (IP = FIRST))(ADDRESS = (PROTOCOL = TCP) (HOST = capaa2) (PORT = 1521) (IP = FI... oracle监听配置注意点 数据库 java系统库性能优化注意点 对于大部分的应用系统开发来说,微秒级别的优化通常是被忽略不计或者不关心的,因为有着更多优化点,但是对于开发供应用系统使用的公用库来说,大部分的操作通常都是对字符、数字、字符串、字节的操作,且这些系统库通常调用频率很高,比如对于一个中间件来说,一次rpc请求可能涉及成百上千次的操作,所以此时细微的性能 原理 Tomcat配置https及访问http自动跳转至https https介绍: HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于 tomcat EMOS 配置及优化 原文地址:EMOS 配置及优化作者:玉观音前言: 1、EMOS是一个基于CentOS,集成了ExtMail Server全部组件的小型Linux系统,10分钟即可完成安装及配置,成为完备的企业邮局系统。它的诞生将彻底改变邮件系统复杂的安装和配置局面,使只具备基本linux知识的用户就可轻松架设邮局。&n emos 配置及优化 数据库mysql注意点及sql优化 一 注意点1、delete、truncate、drop;可以这么理解,一本书,delete是把目录撕了,truncate是把书的内容撕下来烧了,drop是把书烧了2、慎用insert into select,select语句会进行相关数据加锁,如无索引条件会进行全表加锁。二 sql语句优化点1、通过EXPLAIN分析低效的SQL执行计划- select_type:表示SELECT的类型,常见的取值 mysql sql优化