全球主机交流论坛

标题: 怎么才能让nginx支持TLS SNI??? [打印本页]

作者: 哈P哥    时间: 2012-7-27 19:41
标题: 怎么才能让nginx支持TLS SNI???
本帖最后由 哈P哥 于 2012-7-27 20:16 编辑

同一台VPS上的网站只有一个网站能用SSL加密吗?我主域名用的SSL加密,现在二级域名也用SSL。现在二级域名的SSL能用。主域名的SSL却说不能用了。是不是冲突了?



作者: 哈P哥    时间: 2012-7-27 20:16
我按照这文章操作了下,怎么不行啊?


概述
传统的每个SSL证书签发,每个证书都需要独立ip,假如你编译openssl和nginx时候开启TLS SNI (Server Name Identification) 支持,这样你可以安装多个SSL,绑定不同的域名,可以共享同一个ip。



nginx支持TLS协议的SNI扩展(Server Name Indication,简单地说这个扩展使得在同一个IP上可以以不同的证书serv不同的域名)

较早前唯一的办法是签署一个通配证书,即 CNAME 中为 *.delphij.net 这样的证书,即采用的是泛域名的形式进行绑定。

但是对于不是泛域名的证书无法实现一个IP绑定多个证书。 下面讲到的TLS SNI技术可以实现一个IP绑定多个证书。
目的
使用https://ssl.15099.net和https://selfssl.15099.net 使用同一ip,可以配置https,测试环境:美国VPS+CentOS
编译openssl支持TLS SNI
cd /usr/src/
wget http://www.openssl.org/source/openssl-0.9.8l.tar.gz
tar zxvf ./openssl-0.9.8l.tar.gz
cd ./openssl-0.9.8l
./config enable-tlsext
make
make install
cd ..

编译nginx支持TLS SNI
cd /usr/src/
wget http://nginx.org/download/nginx-0.7.67.tar.gz
tar zxvf nginx-0.7.67.tar.gz
cd nginx-0.7.67

./configure \
--prefix=/usr \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid  \
--lock-path=/var/lock/nginx.lock \
--user=nobody\
--group=nobody\
--with-http_stub_status_module\
--with-http_ssl_module \
--with-http_flv_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client_temp/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy_temp/ \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi_temp/  \
--with-openssl=../openssl-0.9.8l/

make
make install


查看现在nginx是不是支持了TLS SNI

[root@www ~]# nginx -V
nginx version: nginx/0.7.67
built by gcc 4.1.2 20080704 (Red Hat 4.1.2-48)
TLS SNI support enabled
configure arguments: --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --user=nobody --group=nobody --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client_temp/ --http-proxy-temp-path=/var/tmp/nginx/proxy_temp/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi_temp/ --with-openssl=../openssl-0.9.8l/
[root@www ~]#
作者: Yorick    时间: 2012-7-27 20:21
元老……这就是元老……
作者: 哈P哥    时间: 2012-7-27 20:23
本帖最后由 哈P哥 于 2012-7-27 20:46 编辑
Yorick 发表于 2012-7-27 20:21
元老……这就是元老……


等级是灌水升的。只是玩玩VPS扶墙。不吃这口饭和技术无关!
作者: alect    时间: 2012-7-27 20:29
Does not work on Windows XP, even Internet Explorer 8.
作者: qiqi13245    时间: 2012-7-27 20:30
alect 发表于 2012-7-27 20:29
Does not work on Windows XP, even Internet Explorer 8.

..............
作者: 360安全卫士    时间: 2012-7-27 20:30
你可以在申请证书时,多绑定域名,这样才能做到1 ip comes serveral domains tls.
作者: 哈P哥    时间: 2012-7-27 20:34
360安全卫士 发表于 2012-7-27 20:30
你可以在申请证书时,多绑定域名,这样才能做到1 ip comes serveral domains tls.

免费的startcom证书可以这样啊?
作者: Kvm    时间: 2012-7-27 20:35
买个泛解析ssl证书
作者: 360安全卫士    时间: 2012-7-27 20:35
哈P哥 发表于 2012-7-27 20:34
免费的startcom证书可以这样啊?

不可以,多个域名的、泛域名的,都需要付费的。
作者: alect    时间: 2012-7-27 20:36
Browsers/clients with support for TLS server name indication:

Opera 8.0 and later (the TLS 1.1 protocol must be enabled)
Internet Explorer 7 or later (under Windows Vista and later only, not under Windows XP)
Firefox 2.0 or later
Curl 7.18.1 or later (when compiled against an SSL/TLS toolkit with SNI support)
Chrome 6.0 or later (on all platforms - releases up to 5.0 only on specific OS versions)
Safari 3.0 or later (under OS X 10.5.6 or later and under Windows Vista and later)
作者: 哈P哥    时间: 2012-7-27 20:42
360安全卫士 发表于 2012-7-27 20:35
不可以,多个域名的、泛域名的,都需要付费的。

我就一个小破站,弄起来玩的,泛解析的估计贵吧!用不上啊!谢了
作者: 360安全卫士    时间: 2012-7-27 20:43
哈P哥 发表于 2012-7-27 20:42
我就一个小破站,弄起来玩的,泛解析的估计贵吧!用不上啊!谢了

那你还不如多买个IP。
作者: 哈P哥    时间: 2012-7-27 20:44
360安全卫士 发表于 2012-7-27 20:43
那你还不如多买个IP。

这倒是个好主意,我去问问多少钱一个!




欢迎光临 全球主机交流论坛 (https://lilynana.eu.org/) Powered by Discuz! X3.4