默認情況下,nginx一個ip地址僅支持一個ssl證書,需要多個ip地址才能配置多個ssl證書,在公網(wǎng)ip地址有限的情況下,可以使用tls server name indication extension(sni, rfc 6066),它允許瀏覽器在ssl握手的時候發(fā)送請求的server name,也就是 host,這樣 nginx 就能找到對應server 的ssl配置。
配置步驟如下:
1、檢查nginx是否支持tls
$ nginx -v
...
tls sni support enabled
...2、如果出現(xiàn)tls sni support disable,就得升級openssl版本,并且重新編譯nginx。
具體步驟如下:
首先下載openssl(建議下載1.0.1h版本)
#wget http://www.openssl.org/source/openssl-1.0.1h.tar.gz下載nginx
#wget http://nginx.org/download/nginx-1.9.9.tar.gz
解壓openssl
#tar -zxvf openssl-1.0.1h.tar.gz解壓nginx,并編譯
#tar -zxvf nginx-1.9.9.tar.gz
#cd nginx-1.9.9
#./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-openssl=../openssl-1.0.1h/
#make && make install#檢查nginx版本信息
#/usr/local/nginx/sbin/nginx -vnginx version: nginx/1.9.9
built by gcc 4.1.2 20080704 (red hat 4.1.2-55)
built with openssl 1.0.1h 5 jun 2014
tls sni support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-openssl=../openssl-1.0.1h/配置vhost中的域名證書
server
{
#########
listen 80;
listen 443 ssl;
#listen [::]:80;
server_name we.baohua.me;
root /home/wwwroot/we.baohua.me;
ssl on;
ssl_certificate_key /home/wwwroot/cert/we.baohua.me.key;
ssl_certificate /home/wwwroot/cert/we.baohua.me.crt;
ssl_protocols sslv3 tlsv1 tlsv1.1 tlsv1.2;
ssl_ciphers high:!anull:!md5;
###############
}
然后,重啟nginx即可。
域名未來發(fā)展趨勢如何?域名有怎樣的前景?根據(jù)需要我需要將該域名過戶給周鴻靜先生我注冊的賬戶里面已經(jīng)充上費用了云虛機淺談微信商城系統(tǒng)如何運營你對租用游戲服務器的方式了解多少?備案變更主辦單位-備案平臺域名重要嗎