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