欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Nginx单IP地址配置多个SSL证书的方法示例

程序员文章站 2022-04-06 22:08:57
默认情况下,nginx一个ip地址仅支持一个ssl证书,需要多个ip地址才能配置多个ssl证书,在公网ip地址有限的情况下,可以使用tls server name indi...

默认情况下,nginx一个ip地址仅支持一个ssl证书,需要多个ip地址才能配置多个ssl证书,在公网ip地址有限的情况下,可以使用tls server name indication extension(sni, rfc 6066),它允许浏览器在ssl握手的时候发送请求的server name,也就是 host,这样 nginx 就能找到对应server 的ssl配置。

配置步骤如下:

1、检查nginx是否支持tls

$ nginx -v
...
tls sni support enabled
...

2、如果出现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 -v
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中的域名证书

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即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。