Nginx单IP地址配置多个SSL证书的方法示例
默认情况下,Nginx一个IP地址仅支持一个SSL证书,需要多个IP地址才能配置多个SSL证书,在公网IP地址有限的情况下,可以使用TLSServerNameIndicationextension(SNI,RFC6066),它允许浏览器在SSL握手的时候发送请求的servername,也就是Host,这样Nginx就能找到对应server的SSL配置。
配置步骤如下:
1、检查Nginx是否支持TLS
$nginx-V ... TLSSNIsupportenabled ...
2、如果出现TLSSNIsupportdisable,就得升级openssl版本,并且重新编译nginx。
具体步骤如下:
首先下载openssl(建议下载1.0.1h版本)
#wgethttp://www.openssl.org/source/openssl-1.0.1h.tar.gz
下载Nginx
#wgethttp://nginx.org/download/nginx-1.9.9.tar.gz
解压openssl
#tar-zxvfopenssl-1.0.1h.tar.gz
解压nginx,并编译
#tar-zxvfnginx-1.9.9.tar.gz #cdnginx-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&&makeinstall
#检查Nginx版本信息
#/usr/local/nginx/sbin/nginx-V
nginxversion:nginx/1.9.9 builtbygcc4.1.220080704(RedHat4.1.2-55) builtwithOpenSSL1.0.1h5Jun2014 TLSSNIsupportenabled configurearguments:--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 { ######### listen80; listen443ssl; #listen[::]:80; server_namewe.baohua.me; root/home/wwwroot/we.baohua.me; sslon; ssl_certificate_key/home/wwwroot/cert/we.baohua.me.key; ssl_certificate/home/wwwroot/cert/we.baohua.me.crt; ssl_protocolsSSLv3TLSv1TLSv1.1TLSv1.2; ssl_ciphersHIGH:!aNULL:!MD5; ############### }
然后,重启Nginx即可。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。