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 安全的更多相关文章

  1. iOS的ATS配置 - 2017年前ATS规定的适配

    苹果规定 从2017年1月1日起,新提交的 app 不允许使用NSAllowsArbitraryLoads来绕过ATS(全称:App Transport Security)的限制. 以前为了能兼容ht ...

  2. iOS 升级HTTPS通过ATS你所要知道的

    由于苹果规定2017年1月1日以后,所有APP都要使用HTTPS进行网络请求,否则无法上架,因此研究了一下在iOS中使用HTTPS请求的实现.网上搜索了一些比较有用资料,大家可以参考下 苹果强制升级的 ...

  3. iOS9网络适配(ATS)

    [转]iOS9 new_001:iOS9网络适配(ATS) 下载Xcode7打开APP后大家都发现自己的APP无法联网了,why? 苹果官方文档介绍如下: App Transport Security ...

  4. Apache Traffic Server(ats)

    零.前言1.官网 http://trafficserver.apache.org/2.国内社区 https://blog.zymlinux.net3.简洁明了的配置:http://blog.csdn. ...

  5. tomcat部署https+TLS 1.2+Apple ATS支持

    因为苹果ATS的要求, tomcat服务器要求上https+TLS1.2, 前面搞定了https,但是tls一直是1.0, 甚至把跑了一年的服务器重启了, 不解决问题. 思路如下: 1. 将openJ ...

  6. ATS

    一) 起因:由于苹果规定2017年1月1日以后,所有APP都要使用HTTPS进行网络请求. 之前,可以在Info.plist中禁用ATS功能,按如下设置即可. <key>NSAppTran ...

  7. AFNetwork ATS 网络层改造

    最近一直做项目的ATS改造,期间遇到了种种问题,各种坑都记录下来, 比如iOS版本.afnetwork版本.证书(是否为自签证书).域名验证.TLS版本等等,我们项目更复杂,还使用了域名到IP映射的路 ...

  8. 关于 iOS 10 中 ATS 的问题

    本文于 2016 年 11 月 28 日按照 Apple 最新的文档和 Xcode 8 中的表现进行了部分更新. WWDC 15 提出的 ATS (App Transport Security) 是 ...

  9. 如何排查APP服务端和客户端是否支持ATS

    服务端排查 取得客户端直接连接的服务端域名及端口,例如mob.com.cn,端口443,即HTTPS默认端口.针对公网可访问的生产环境地址,建议使用的在线监测工具.https://wosign.ssl ...

  10. Apache和Nginx配置支持苹果ATS方法

    什么是ATS功能? ATS是iOS9和OS X El Capitan的一个新特性.开启该功能后,ATS对使用NSURLConnection, CFURL或NSURLSession 等APIs 进行的网 ...

随机推荐

  1. Mysql引擎innodb_pool的作用

    innodb_buffer_pool的简介: InnoDB主索引是聚簇索引,索引与数据共用表空间,对于InnoDB而言,数据就是索引,索引就是数据.InnoDB缓存机制和MyISAM缓存机制的最大区别 ...

  2. Laravel 执行过程核心

    protected function sendRequestThroughRouter($request){ $this->app->instance('request', $reques ...

  3. Spirng MVC 重定向传递对象

    在 Spring MVC 中我们会经常遇到重定向. @RequestMapping("/order/saveorder.html") public String saveOrder ...

  4. python 下 安装openCV

    安装openCV openCV是Intel 创建的计算机视觉库,用于计算机图像处理. 安装anaconda,在命令行中输入conda install cv2/opencv 报错汇总 网络连接问题 报错 ...

  5. 团队作业——Alpha冲刺 4/12

    团队作业--Alpha冲刺 冲刺任务安排 杨光海天 今日任务:着手进行编辑界面的布局,插入控件,并进行参数调整. 明日任务:继续完善编辑界面控件,学习控件交互功能. 郭剑南 今日任务:上网查阅学习了关 ...

  6. Django商城项目笔记No.15用户部分-用户中心邮箱验证

    首先增加前端页面success_verify_email.html页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitiona ...

  7. python第三十课--异常(异常对象传递过程)

    演示异常对象传递的过程(往上“抛”),并将其解决 def func1(): print('func1...') print(10/0) def func2(): print('func2...') t ...

  8. unity3D iTween的使用

     iTween是一个动画库,作者创建它的目的就是最小的投入实现最大的产出.让你做开发更轻松,用它能够轻松实现各种动画,晃动,旋转,移动,褪色,上色,控制音频等等 到官网看看 http://itwe ...

  9. Nowcoder 提高组练习赛-R1

    https://www.nowcoder.com/acm/contest/172#question 单人报名300元,五人合报免费,于是就和学弟同学学长们组了一个三世同堂的队伍,高一的学长wzhqwq ...

  10. BZOJ4919:[Lydsy1706月赛]大根堆(set启发式合并)

    Description 给定一棵n个节点的有根树,编号依次为1到n,其中1号点为根节点.每个点有一个权值v_i. 你需要将这棵树转化成一个大根堆.确切地说,你需要选择尽可能多的节点,满足大根堆的性质: ...