本帖最后由 longyushen 于 2013-11-27 19:03 編輯
WDCP下的純Nginx支持多域名ssl證書(shū)(TLS SNI support disabled)解決方案
來(lái)本論壇搜索的時(shí)候,沒(méi)有發(fā)現(xiàn)有任何的解決方案,發(fā)帖提問(wèn)也沒(méi)有人能及時(shí)回答,今天經(jīng)過(guò)一天的百度和研究,終于搞定了,一下是我的具體操作過(guò)程,希望以后能幫得了大家 nginx如果編譯的時(shí)候使用openssl如果沒(méi)有添加enable-tl***t參數(shù)的話,就只支持一個(gè)ssl證書(shū),因此要讓nginx支持多域名證書(shū)就必須要重新編譯openssl和nginx。
詳細(xì)過(guò)程:
升級(jí)更改完nginx配置文件以后,使用/www/wdlinux/nginx/sbin/nginx -t測(cè)試配置文件沒(méi)有問(wèn)題,就采用/www/wdlinux/nginx/sbin/nginx -s reload重新加載配置文件,輸入新域名的https訪問(wèn)竟然出現(xiàn)錯(cuò)誤證書(shū)的提示,左鍵點(diǎn)擊證書(shū)錯(cuò)誤,選擇查看證書(shū),發(fā)現(xiàn)用的是另外一個(gè)域名的證書(shū)。反復(fù)檢查后錯(cuò)誤依舊。心中轉(zhuǎn)念一想:是不是nginx只支持一個(gè)證書(shū)?帶著這個(gè)問(wèn)題,在baidu和google上搜索了一下,還真的是這個(gè)問(wèn)題,要讓nginx支持多證書(shū),nginx必須支持TLS SNI,使用命令/www/wdlinux/nginx/sbin/nginx -V查看,服務(wù)器的查看結(jié)果如下:
- 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
復(fù)制代碼
很明顯,不支持TLS SNI,需要重新編譯openssl和nginx。 接下來(lái)我們?cè)敿?xì)敘述一下能讓nginx支持多域名證書(shū)的過(guò)程,主要分為如下兩個(gè)大步驟:編譯安裝openssl和編譯安裝nginx(nginx平滑升級(jí),不影響業(yè)務(wù))。 一、編譯安裝openssl
- 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
復(fù)制代碼
#編譯的時(shí)候需要加上enable-tl***t參數(shù)
- ./config enable-tl***t
- make
- make install
復(fù)制代碼
二、編譯安裝nginx(nginx平滑升級(jí))
- tar xzvf nginx-1.4.4.tar.gz
- cd nginx-1.4.4
復(fù)制代碼
#備份原來(lái)的nginx配置
- mv /www/wdlinux/nginx-1.4.4 /www/wdlinux/nginx_old
復(fù)制代碼
#安裝nginx
- ./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
復(fù)制代碼
#備份新安裝的配置目錄
- mv conf conf_bak
- mv logs logs_bak
復(fù)制代碼
#拷貝原來(lái)的配置文件目錄
- cp -ar /www/wdlinux/nginx_old/conf
- cp -ar /www/wdlinux /nginx_old/logs
復(fù)制代碼
#測(cè)試配置文件
- /www/wdlinux/nginx/sbin/nginx -t
復(fù)制代碼
#查找nginx主進(jìn)程
- ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'
復(fù)制代碼
#執(zhí)行切換操作
- kill -USR2 23588
- kill -WINCH 23588
- kill -QUIT 23588
復(fù)制代碼
安裝完成使用- /www/wdlinux /nginx/sbin/nginx -V
復(fù)制代碼 查看一下是否支持TLS SNI,檢測(cè)如下:
- 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/
復(fù)制代碼
這樣顯示已經(jīng)支持了TLS SNI,在輸入https訪問(wèn),終于能顯示正確的證書(shū)了! 注意目前如果使用xp上的IE去訪問(wèn)的話還是會(huì)提示證書(shū)有問(wèn)題,因?yàn)?/font>xp上任何版本的IE都不支持TLS SNI。 |