在HTTP/1.1中升级到TLS(Upgrading to TLS Within HTTP/1.1)

本文档描述了如何使用HTTP/1.1的升级机制在TCP连接上建立安全传输层(TLS),使得HTTP和HTTPS能在同一端口80共存,支持虚拟主机,并介绍了客户端和服务器之间、通过代理的升级过程,以及相关HTTP状态码和升级产品的IANA注册。
摘要由CSDN通过智能技术生成
本备忘录的状态

本文档为Internet社区定义Internet标准协议,同时征求改进意见和建议。关于本
协议的现状和标准化状态请参阅“Internet官方协议标准”(STD 1)。本备忘录的发布不受
任何限制。

版权声明
Copyright (C) The Internet Society (2000). All Rights Reserved.

摘要

本文档描述如何使用HTTP/1.1的升级机制在一个现存的TCP连接上发起安全传输
层(TLS)。这样就允许安全的和不安全的HTTP通信共享同一个众所周知的端口(在这
个例子中,http在80端口而不是在像https在443端口)。这种做法也支持“虚拟主
机”,因此一个HTTP+TLS服务器能区分发往在同一个IP地址上的几个主机的消息。
HTTP/1.1 [1]中将升级定义为逐跳的机制,本备忘录也描述了用于跨越HTTP代理
建立端到端隧道的HTTP CONNECT机制。最后,本备忘录为公用HTTP状态码和公用或
私有升级产品符号建立了新的IANA注册。
本备忘录不影响到当前“https”URI方案的定义,该方案已经定义了一个单独的
名字空间(http://example.org/ 和 https://example.org/ 不等价)。







目录
1. 动机 2
2.介绍 3
2.1. 相关术语 3
3. 客户请求升级到TLS之上的HTTP 3
3.1. 可选的升级 3
3.2. 强制升级 4
3.3 服务器对升级请求的确认 4
4 服务器请求升级到TLS之上的HTTP 4
4.1 选项通知 4
4.1 强制通知 4
5 通过代理的升级 5
6 使用4xx(客户错误)状态码的原理 6
7 IANA的考虑 6
7.1 HTTP状态码登记 7
安全考虑 7
7.1 https:URI方案含义 8
7.2 CONNECT的安全考虑 8
参考 8
作者地址 9
附录A 致谢 10
完整版权声明 10
致谢 11


1. 动机
过去在SSL3[3]上配置HTTP是用一个唯一的URI及TCP端口号,这样同单独的
HTTP相区分。方案“http”意味着在80端口单独的HTTP协议,而“https”表示在
443端口的SSL之上的HTTP协议。类似的,其它应用协议(例如:snews,ftps)为区
分安全和不安全的使用,要求使用二个端口号。这个方法使得可用的众所周知的端口
数减半。
在1997年12月华盛顿特区IETF会议上,应用区主管及IESG重申不赞成使用并行
的“安全”端口号。HTTP/1.1的升级机制可以在一个打开的HTTP连接上建立传输层安
全[6]。
自最近两年来,大家已经广泛接受了这个建议,但对实现一个取代通常的用于网
络浏览的443端口没有多大兴趣。实际上,本备忘录不影响当前对https:URI的解
释。但是,在HTTP之上建立的新的应用协议如Internet打印协议[7],需要这样的机
制使得IETF标准化进程前进一步。
升级机制也解决了“虚拟主机”问题。HTTP/1.1服务器不是给一个主机分配多个
IP地址,而是使用主机:头来区分web服务。由于HTTP/1.1的使用日益流行,越来越
多的ISP提供基于名字的虚拟主机,使得IP地址空间不会马上耗尽。
TLS(及SSL)和HTTP的早期版本一样受制于:初始化的握手不指定需要的主机
名,而只依赖于IP地址。使用明文的HTTP/1.1升级:作为TLS握手的序幕,――基于
初始的主机:头选择证书,――可使得ISP同样能提供基于名字的安全虚拟主机。
2.介绍
TLS又名SSL(安全套接字层),建立一个私有端到端连接,选项包括使用多种密码系
统的相互之间的强认证。开始时,一次握手过程使用三个子协议来设置一个记录层,认证
端点,设置参数,和报告错误。然后,由一个分层记录协议处理加密,压缩和重组连接的
剩余部分。后者希望做成完全透明。例如,在TLS的记录标记或认证和HTTP/1.1的大块编
码或认证之间没有关联。
客房和服务器都能使用HTTP/1.1[1]升级机制(14.42节)来指示TLS安全连接是必要
的。本备忘录定义了“TLS/1.0”升级记号和一个新的HTTP状态码,“426-需要升级”。
小节3和小节4描述了直接相连的客房和服务器的操作。如小节5中阐述的,在实施任
何操作之前中间代理必须建立端到端的隧道。
2.1. 相关术语
在本文中的关键字“必须”,“必须不”,“要求”,“应该”,“不应该”和“可
能”的解释见[RFC2119]。
3. 客户请求升级到TLS之上的HTTP
当客户发送一个有包含记号“TLS/1.0”的升级包头的HTTP/1.1请求,它表示请
求服务器在转换到TLS/1.0之后完成当前的HTTP/1.1请求。
3.1.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值