niaoren
V2EX  ›  SSL

如何在同一个 IP 上配置多个 HTTPS 主机?

By niaoren at 2016 年 9 月 23 日 · 3490 次点击

最古老的也是最稳定的解决方法就是每个 HTTPS 主机使用不同的 IP 地址,但是要多买服务器。

另外是 TLS 协议的 SNI 扩展,但是有些浏览器不支持 Android 2.3.7 和 IE 6 / XP 和 IE 8 / XP

还有什么好办法吗?

http://www.cnblogs.com/davidwang456/p/3428261.html

http://www.ttlsa.com/web/multiple-https-host-nginx-with-a-ip-configuration/

15 条回复  •  2016-11-10 23:19:11 +08:00
3dwelcome
   1
3dwelcome  
   2016 年 9 月 23 日 via Android
把 ssl 当成一个透明代理、连普通的 http 服务器、直接用最传统的 host http 头判断就行了。也不需要 sni
gamexg
   2
gamexg  
   2016 年 9 月 23 日 via Android
多域名单证书
clino
   3
clino  
   2016 年 9 月 23 日 via Android
用 nginx 什么的不是能轻松搞定吗
jasontse
   4
jasontse  
   2016 年 9 月 23 日 via iPad
要么买野卡,要么买 IP ,自己选一个。
choury
   5
choury  
   2016 年 9 月 23 日
@3dwelcome 握手阶段就需要发送证书,而握手的时候 http 头还没有发送,请问怎么判断?
popu111
   6
popu111  
   2016 年 9 月 23 日 via Android
为何还要管 ie6 和安卓 2.3 ,早该去死了_(:з」∠)_
现在大多数网站用 IE6 都看不了,我不相信还有人会坚持,起码都用套壳了
3dwelcome
   7
3dwelcome  
   2016 年 9 月 23 日 via Android
握手证书可以多域名签发的、这个不用担心。
alect
   8
alect  
   2016 年 9 月 23 日
可以考虑用 startssl 或者 wosign 的免费证书签发多域名证书,目前 startssl 可以签发 10 个域名, wosign 可以签发 20 个域名,但是这两个证书的兼容性在这些系统下估计会有问题。如果有证书强迫症的话估计也可以跳过。
lslqtz
   9
lslqtz  
   2016 年 9 月 23 日
@3dwelcome 多域名签发后还判断个毛
lslqtz
   10
lslqtz  
   2016 年 9 月 23 日
不建议使用 startssl 和 wosign ,建议用 le ,可以签发 100 个
niaoren
   11
niaoren  
OP
   2016 年 9 月 25 日 via iPhone
基于名字的 HTTPS 主机

如果在同一个 IP 上配置多个 HTTPS 主机,会出现一个很普遍的问题:
server {
listen 443;
server_name www.example.com;
ssl on;
ssl_certificate www.example.com.crt;
...
}

server {
listen 443;
server_name www.example.org;
ssl on;
ssl_certificate www.example.org.crt;
...
}
使用上面的配置,不论浏览器请求哪个主机,都只会收到默认主机 www.example.com 的证书。这是由 SSL 协议本身的行为引起的——先建立 SSL 连接,再发送 HTTP 请求,所以 nginx 建立 SSL 连接时不知道所请求主机的名字,因此,它只会返回默认主机的证书。
niaoren
   12
niaoren  
OP
   2016 年 9 月 25 日 via iPhone
@popu111 还有一部分 Xp , IE8
niaoren
   13
niaoren  
OP
   2016 年 9 月 25 日 via iPhone
@clino nginx 的 SNI 扩展 有些浏览器不支持
msg7086
   14
msg7086  
   2016 年 9 月 27 日
这问题就是这样,没别的选择,要么买 IP 要么 SNI 要么 SAN 证书。
talas
   15
talas  
   2016 年 11 月 10 日
gnutls 可以支持
© 2026 V2EX · 41ms · 3.9.8.5