ats 安全
Controlling Access
ats可以配置为仅允许某些客户端使用代理缓存.
1. 为ip_allow.config添加一行,以获取允许访问ats的每个IP地址或IP地址范围;
2. traffic_ctl config reload;
SSL Termination
通过ats ssl 终止选项,可以在客户端和ats或ats和源服务器之间以反向代理模式连接。
以下部分介绍了如何启用和配置SSL终止选项:
1. 客户端和流量服务器连接启用和配置SSL终止;
2. ats和origin服务器连接启用和配置ssl终止;
Client and Traffic Server Connections
下图说明了启用SSL终止选项并仅为客户端/流量服务器连接配置时客户端与流量服务器
之间(以及流量服务器和源服务器之间)之间的通信.

1.客户端发送https请求内容。ats接受请求并执行SSL握手以验证客户端(取决于
配置的身份验证选项)并确定将使用的加密方法。如果允许客户端访问,则
ats会检查其缓存中是否有所请求的内容;
2. 如果请求是缓存命中且内容是新鲜的,则ats会加密内容并将其发送到客户端。客户端
解密内容(使用握手期间确定的方法)并显示它。
3. 如果请求是缓存未命中或缓存内容过时,则ats通过http与源服务器通信,并获取
内容的纯文本版本。ats将内容的纯文本保存在其缓存中,加密内容并将其发送到
客户端。客户端解密并显示内容。
要将ats配置为使用客户端/流量服务器连接的SSL终止选项,必须执行以下操作:
1.从公认的证书颁发机构获取并安装SSL服务器证书。SSL服务器证书包含使客户端
能够对ats进行身份验证并交换密钥的信息;
2. 使用records.config中的proxy.config.http.server_ports设置用于SSL通信的端口号;
3. 在records.config中为SSL证书和私钥设置适当的路径:
CONFIG proxy.config.ssl.server.sert.path STRING "/opt/ts/etc/ssl/certs/"
CONFIG proxy.config.ssl.server.private_key.path STRING "/opt/ts/etc/ssl/keys/"
4. 为ssl_multicert.config添加一个条目,用于ats系统将用于终止与客户端的SSL连接
的每个证书和密钥;
ip_dest=1.2.3.4 ssl_cert_name=example.com.pem
ip_dest=* ssl_cert_name=default.pem
5. 可选:
使用records.config中的变量proxy.config.ssl.client.certification_level配置客户端证书
的使用。如果将ats配置为需要客户端证书, 则ats会在ssl握手期间验证客户端证书,以验证
客户端。如果将ats配置为不需要客户端证书,或者将证书配置可选,并且连接客户端不提
供证书,则可以通过已设置的其它ats选项管理对ats的访问ip_allow.config).
CONFIG proxy.config.ssl.client.certification_level INT 0
0: client certificates not required;
1: client ceritficates optional. if present, will be used to validate;
2: client certficates required, and must validate based on configured CAs.
6. 可选: 配置证书颁发机构(CA)的使用。CA通过验证气你去证书的人员的身份来增加
安全性。可接受的CA签名者列表使用的records.config中的
proxy.config.ssl.CA.cert.path进行配置。
7. traffic_ctl server restart
Traffic Server and Origin Server Connections
下图说明了为ats/origin服务器连接启用ssl终止选项时ats和源服务器之间的通信;

1.如果客户端请求是缓存未命中或过时,则ats会将内容的https请求发送到源服务器.源服务
接收请求并执行SSL握手以验证ats并确定要使用的加密方法;
2. 如果允许ats访问,则源服务器对内容进行加密并将其发送到ats, 在ats中解密(使用握手
期间确定的方法).如果ats认为内容可缓存,则内容的纯文本版本将保存在缓存中;
3. 如果客户端/流量服务器连接启用了SSL终止,则ats会重新加密内容并通过https 将其发送
到客户端,并在其中对其进行解密和显示。如果未对客户端、流量服务器连接启用SSL
终止,则ats会通过http将内容的纯文本版本发送到客户端。
要将ats配置为对ats和源服务器连接使用SSL终止选项,需要执行以下操作:
1. 首先确保您的源服务器正确响应SSL请求,并将其配置为客户端证书验证(如果您打算
将其用作访问控制方案的一部分);
如果源服务器是另一个ats系统,则可以按照客户端和流量服务器连接中概述的步骤
配置源服务器以验证客户端证书。
2. 可选项: 如果源服务器需要客户端证书验证以进行访问控制,需要从公认的证书颁发机构
获取并安装SSL客户端证书。客户端证书必须由源服务器识别的证书颁发机构签名。
如果使用的是客户端证书,则必须将其位置添加到设置中的records.config.
proxy.config.ssl.client.cert.path 和proxy.config.ssl.client.cert.filename
CONFIG proxy.config.ssl.client.cert.path STRING "/opt/ts/etc/ssl/certs/"
CONFIG proxy.config.ssl.client.cert.filename STRING "client.pem"
还必须提供此证书的私钥路径,除非该密钥与证书包含在同一文件中,
使用proxy.config.ssl.client.private_key.path和proxy.config.ssl.client.private_key.filename
CONFIG proxy.config.ssl.client.private_key.path STRING "/opt/ts/etc/ssl/keys/"
CONFIG proxy.config.ssl.client.private_key.filename STRING "client.pem"
3. 根据安全策略启用或禁用服务器SSL证书验证:
CONFIG proxy.config.ssl.client.verify.server INT 1
4. 使用设置proxy.config.ssl.client.CA.cert.path和proxy.config.ssl.client.CA.cert.filename 将
使用授权证书颁发机构的集合添加到records.config 中的ats配置中;
CONFIG proxy.config.ssl.client.CA.cert.path STRING "/opt/ts/etc/ssl/certs/"
CONFIG proxy.config.ssl.client.CA.cert.filename STRING "CAs.pem"
5. traffic_ctl server restart
Rotating TLS Session Ticket Keys
可以通过会话票证恢复TLS会话,会话票证使用会话票证密钥加密并存储在客户端上。
为了更好的安全性,可以定期轮换票证密钥,例如每24小时轮换一次。票证密钥作为48字节
块中的反向队列存储在票证密钥文件中。
1. 生成新的故障单密钥并将其推送到故障单密钥文件的开头;
2. 可选项: 从故障单密钥文件中删除最后一个故障单密钥;
3. 触摸ssl_multicert.config以指示SSL配置已过时;
4. traffic_ctl config reload
Split DNS
通过拆分DNS选项,可以根据安全要求将ats配置为使用多个DNS服务器。eg, 可以将ats配
置为使用一组DNS服务器来解析内部网络上的主机名,同时允许防火墙外的DNS服务器解析
Internet上的主机。可以维护Intranet的安全性,同时继续提供对组织外部站点的直接访问。
配置拆分DNS:
1. 根据目标域,目标主机或URL正则表达式指定执行DNS服务器选择的规则。这些规则位于
splitdns.config中;
2. 通过调整records.config中的proxy.config.dns.splitDNS.enabled启用拆分DNS选项:
CONFIG proxy.config.dns.splitDNS.enabled INT 1
3. traffic_ctl config reload
ats 安全的更多相关文章
- iOS的ATS配置 - 2017年前ATS规定的适配
苹果规定 从2017年1月1日起,新提交的 app 不允许使用NSAllowsArbitraryLoads来绕过ATS(全称:App Transport Security)的限制. 以前为了能兼容ht ...
- iOS 升级HTTPS通过ATS你所要知道的
由于苹果规定2017年1月1日以后,所有APP都要使用HTTPS进行网络请求,否则无法上架,因此研究了一下在iOS中使用HTTPS请求的实现.网上搜索了一些比较有用资料,大家可以参考下 苹果强制升级的 ...
- iOS9网络适配(ATS)
[转]iOS9 new_001:iOS9网络适配(ATS) 下载Xcode7打开APP后大家都发现自己的APP无法联网了,why? 苹果官方文档介绍如下: App Transport Security ...
- Apache Traffic Server(ats)
零.前言1.官网 http://trafficserver.apache.org/2.国内社区 https://blog.zymlinux.net3.简洁明了的配置:http://blog.csdn. ...
- tomcat部署https+TLS 1.2+Apple ATS支持
因为苹果ATS的要求, tomcat服务器要求上https+TLS1.2, 前面搞定了https,但是tls一直是1.0, 甚至把跑了一年的服务器重启了, 不解决问题. 思路如下: 1. 将openJ ...
- ATS
一) 起因:由于苹果规定2017年1月1日以后,所有APP都要使用HTTPS进行网络请求. 之前,可以在Info.plist中禁用ATS功能,按如下设置即可. <key>NSAppTran ...
- AFNetwork ATS 网络层改造
最近一直做项目的ATS改造,期间遇到了种种问题,各种坑都记录下来, 比如iOS版本.afnetwork版本.证书(是否为自签证书).域名验证.TLS版本等等,我们项目更复杂,还使用了域名到IP映射的路 ...
- 关于 iOS 10 中 ATS 的问题
本文于 2016 年 11 月 28 日按照 Apple 最新的文档和 Xcode 8 中的表现进行了部分更新. WWDC 15 提出的 ATS (App Transport Security) 是 ...
- 如何排查APP服务端和客户端是否支持ATS
服务端排查 取得客户端直接连接的服务端域名及端口,例如mob.com.cn,端口443,即HTTPS默认端口.针对公网可访问的生产环境地址,建议使用的在线监测工具.https://wosign.ssl ...
- Apache和Nginx配置支持苹果ATS方法
什么是ATS功能? ATS是iOS9和OS X El Capitan的一个新特性.开启该功能后,ATS对使用NSURLConnection, CFURL或NSURLSession 等APIs 进行的网 ...
随机推荐
- NoSQL——not onlySQL不仅仅是SQL
数据有很大一部分是由关系数据库管理系统(RDBMS)来处理. 1970年 E.F.Codd's提出的关系模型的论文 "A relational model of data for large ...
- BeanDefinition及其实现类
[转自 http://blog.csdn.net/u011179993 ] 目录(?)[+] 一. BeanDefinition及其实现类 BeanDefinition接口 这个接口描述bea ...
- sql !=与null
在写SQL 条件语句是经常用到 不等于‘<>’的筛选条件,此时要注意此条件会将字段为null的数据也当做满足不等于的条件而将数据筛选掉. 例:表A A1 B1 1 0 2 1 3 NUL ...
- VS2013自带报表+打印功能
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u010773667/article/details/27540389 经过了VB版机房收费系统的学习 ...
- AndroidStudio编译error:app:validateReleaseSigning'Keystore file not found for signing config 'release
使用AndroidStudio编译时提示error: Error:Execution failed for task ‘:app:validateReleaseSigning’. > Keyst ...
- PHPer是草根吗
以下文字并没有非常多的技术词汇,所以只要对PHP感兴趣的人都可以看看. PHPer是草根吗? 从PHP诞生之日起,PHP就开始在Web应用方面为广大的程序员服务.同时,作为针对Web开发量身定制的脚本 ...
- 利用 share code 插件同步代码片段
利用 Settings Sync可以同步 VS code 配置,但它只能同步插件,利用 Settings Sync 再配合 share code 插件可以同步自定义代码片段,可以把 VS code ...
- P1522 牛的旅行 Cow Tours
题目描述 农民 John的农场里有很多牧区.有的路径连接一些特定的牧区.一片所有连通的牧区称为一个牧场.但是就目前而言,你能看到至少有两个牧区通过任何路径都不连通.这样,Farmer John就有多个 ...
- fabric简单案例
1 执行一个简单的task任务,显示两台机器的/home/guol/目录下的文件 from fabric.api import * env.users='root' env.port=22 env. ...
- day37
今日内容 1.线程池和进程池 2.利用线程池实现套接字并发通信 3.协程(利用模块gevent模块,实现单线程下套接字并发通信) 1.线程池与进程池 要用线程池与进程池,首先要导入concurrent ...