WDlinux官方论坛's Archiver

longyushen 发表于 2013-11-27 16:39

WDCP下的纯Nginx支持多域名ssl证书(TLS SNI support disabled)解决方案

[i=s] 本帖最后由 longyushen 于 2013-11-27 19:03 编辑 [/i]

[font=黑体][size=5][color=#666666][font=宋体]  [/font][/color][/size][/font][font=宋体][size=5][color=#666666]WDCP下的纯Nginx支持多域名ssl证书(TLS SNI support disabled)解决方案[/color][/size][/font][font=宋体][size=5][color=#666666]
[/color][/size][/font][p=26, 2, left]来本论坛搜索的时候,没有发现有任何的解决方案,发帖提问也没有人能及时回答,今天经过一天的百度和研究,终于搞定了,一下是我的具体操作过程,希望以后能帮得了大家[/p][p=26, 2, left]nginx[font=宋体]如果编译的时候使用[/font]openssl[font=宋体]如果没有添加[/font]enable-tl***t[font=宋体]参数的话,就只支持一个[/font]ssl[font=宋体]证书,因此要让[/font]nginx[font=宋体]支持多域名证书就必须要重新编译[/font]openssl[font=宋体]和[/font]nginx[font=宋体]。[/font][/p]
[font=黑体][size=5][color=#666666][font=宋体]详细过程:[/font][/color][/size][/font]
[p=26, 2, left][font=宋体]升级更改完[/font]nginx[font=宋体]配置文件以后,使用[/font]/www/wdlinux/nginx/sbin/nginx  -t[font=宋体]测试配置文件没有问题,就采用[/font]/www/wdlinux/nginx/sbin/nginx  -s reload[font=宋体]重新加载配置文件,输入新域名的[/font]https[font=宋体]访问竟然出现错误证书的提示,左键点击证书错误,选择查看证书,发现用的是另外一个域名的证书。反复检查后错误依旧。心中转念一想:是不是[/font]nginx[font=宋体]只支持一个证书?带着这个问题,在[/font]baidu[font=宋体]和[/font]google[font=宋体]上搜索了一下,还真的是这个问题,要让[/font]nginx[font=宋体]支持多证书,[/font]nginx[font=宋体]必须支持[/font]TLS SNI[font=宋体],使用命令[/font]/www/wdlinux/nginx/sbin/nginx  -V[font=宋体]查看,服务器的查看结果如下:[/font][/p]
[code]nginx version: nginx/1.4.4
TLS SNI support disabled
configure arguments: --prefix=/www/wdlinux/nginx --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module[/code]
[p=26, 2, left][font=宋体]很明显,不支持[/font]TLS SNI[font=宋体],需要重新编译[/font]openssl[font=宋体]和[/font]nginx[font=宋体]。[/font][/p][p=26, 2, left][font=宋体]接下来我们详细叙述一下能让[/font]nginx[font=宋体]支持多域名证书的过程,主要分为如下两个大步骤:编译安装[/font]openssl[font=宋体]和编译安装[/font]nginx[font=宋体]([/font]nginx[font=宋体]平滑升级,不影响业务)。[/font][/p][p=26, 2, left]一、[font=宋体]编译安装[/font]openssl[/p]
[code]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[/code]
[color=#666666][font=宋体, Arial][p=30, 2, left]#[font=宋体]编译的时候需要加上enable-tl***t[/font][font=宋体]参数[/font][/p][/font][/color]
[code]./config enable-tl***t
make
make install[/code]

[p=26, 2, left]二、[font=宋体]编译安装[/font]nginx[font=宋体]([/font]nginx[font=宋体]平滑升级)[/font][/p]
[code]tar xzvf nginx-1.4.4.tar.gz
cd nginx-1.4.4[/code]
[p=26, 2, left]#[font=宋体]备份原来的[/font]nginx[font=宋体]配置[/font][/p]
[code]mv /www/wdlinux/nginx-1.4.4 /www/wdlinux/nginx_old[/code]
[p=26, 2, left]#[font=宋体]安装[/font]nginx[/p]
[code]./configure --prefix=/www/wdlinux/nginx --with-http_ssl_module --with-http_gzip_static_module  --with-http_stub_status_module --with-openssl=../openssl-0.9.8l/make;make installcd /www/wdlinux/nginx[/code]

[p=26, 2, left]#[font=宋体]备份新安装的配置目录[/font][/p]
[code]mv conf conf_bak
mv logs logs_bak[/code]

[p=26, 2, left]#[font=宋体]拷贝原来的配置文件目录[/font][/p]
[code]cp -ar /www/wdlinux/nginx_old/conf
cp -ar /www/wdlinux /nginx_old/logs[/code]

[p=26, 2, left]#[font=宋体]测试配置文件[/font][/p]
[code]/www/wdlinux/nginx/sbin/nginx -t[/code]
[p=26, 2, left]#[font=宋体]查找[/font]nginx[font=宋体]主进程[/font][/p]
[code]ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'[/code]
[p=26, 2, left]#[font=宋体]执行切换操作[/font][/p]
[code]kill -USR2 23588
kill -WINCH 23588
kill -QUIT 23588[/code]



[font=宋体]安装完成使用[/font][code]/www/wdlinux /nginx/sbin/nginx  -V[/code][font=宋体]查看一下是否支持[/font]TLS SNI[font=宋体],检测如下:[/font]
[code]nginx version: nginx/1.4.4
TLS SNI support enabled
configure arguments: --prefix=/www/wdlinux/nginx --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with-openssl=../openssl-0.9.8l/[/code]
[p=30, 2, left]这样[font=宋体]显示已经支持了[/font]TLS SNI[font=宋体],在输入[/font]https[font=宋体]访问,终于能显示正确的证书了![/font] [font=宋体][size=10.5pt]注意目前如果使用[/size][/font][size=10.5pt]xp[/size][font=宋体][size=10.5pt]上的[/size][/font][size=10.5pt]IE[/size][font=宋体][size=10.5pt]去访问的话还是会提示证书有问题,因为[/size][/font][font=宋体][size=12pt]xp[/size][/font][font=宋体][size=12pt]上任何版本的IE都不支持[/size][/font][size=10.5pt]TLS SNI[/size][font=宋体][size=10.5pt]。[/size][/font][/p]

admin 发表于 2013-11-27 22:21

加精

cmcmc 发表于 2014-3-10 22:34

提醒一下那个“enable-tl***t参数” 是 tlsext

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.