TLS’s Server Name Indication

我的一个同事打算在单个IP上通过http虚拟主机的方式配置多个https域名。关于这个问题的讨论可见这里:https://blog.delphij.net/2009/06/apacheiphttps.html 。令我惊讶的是,他成功了。后来我发现,Apache和delphij所说的问题,是针对SSLv2的。TLSv1中的Client Hello请求可以带Extensions,其中extension type中有一类就是server_name。而wget在发起https请求的时候并没有把这个带上,而IE8带上了。其它的我还没测试。总之nginx是支持根据这个选择所用的证书,这个功能在rfc4366中被称之为Server Name Indication。

查了一下关于SNI的支持情况:

库: openssl: 0.9.8f

客户端:

  • Mozilla Firefox 2.0 or later
  • Opera 8.0 or later (with TLS 1.1 enabled)
  • Internet Explorer 7.0 or later (on Vista, not XP)
  • Google Chrome
  • Safari 3.2.1 on Mac OS X 10.5.6

服务器:

apache/nginx的较新版本都支持,主要取决于tls库(比如openssl)。

此博客中的热门博文

少写代码,多读别人写的代码

在windows下使用llvm+clang

tensorflow distributed runtime初窥