默认情况下,Nginx一个IP地址仅支持一个SSL证书,需要多个IP地址才能配置多个SSL证书,在公网IP地址有限的情况下,可以使用TLS Server Name Indication extension(SNI, RFC 6066),它允许浏览器在SSL握手的时候发送请求的server name,也就是 Host,这样 Nginx 就能找到对应server 的SSL配置。
配置步骤如下:
1、检查Nginx是否支持TLS
?
1
2
3
4
…
TLS SNI support enabled
…
2、如果出现TLS SNI support disable,就得升级openssl版本,并且重新编译nginx。
具体步骤如下:
首先下载openssl(建议下载1.0.1h版本)
?
1
#wget http://www.openssl.org/source/openssl-1.0.1h.tar.gz
下载Nginx
?
1
#wget http://nginx.org/download/nginx-1.9.9.tar.gz
解压openssl
?
1
#tar -zxvf openssl-1.0.1h.tar.gz
解压nginx,并编译
?
1
2
3
4
#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_gz
ip_static_module –with-
ipv6 –with-openssl=../openssl-1.0.1h/
#make && make install
#检查Nginx版本信息
?
1
#/usr/local/nginx/sbin/nginx -V
?
1
2
3
4
5
nginx 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中的域名证书
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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即可。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://wangxianyuan.com/post/nginx-single-ip-address-to-configure-multiple-ssl-certificates
声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。