Nginx單IP地址配置多個SSL證書的方法示例

佚名發表於2018-12-03

文章主要介紹了Nginx單IP地址配置多個SSL證書的方法示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

預設情況下,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. $ nginx -V
  2. ...
  3. TLS SNI support enabled
  4. ...

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. #tar -zxvf nginx-1.9.9.tar.gz
  2. #cd nginx-1.9.9
  3. #./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/
  4. #make && make install

#檢查Nginx版本資訊

  1. #/usr/local/nginx/sbin/nginx -V
  1. nginx version: nginx/1.9.9
  2. built by gcc 4.1.2 20080704 (Red Hat 4.1.2-55)
  3. built with OpenSSL 1.0.1h 5 Jun 2014
  4. TLS SNI support enabled
  5. 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. server
  2.     {
  3.      #########
  4.         listen 80;
  5.         listen 443 ssl;
  6.         #listen [::]:80;
  7.         server_name we.baohua.me;
  8.         root  /home/wwwroot/we.baohua.me;
  9.  
  10.         ssl on;
  11.         ssl_certificate_key /home/wwwroot/cert/we.baohua.me.key;
  12.         ssl_certificate /home/wwwroot/cert/we.baohua.me.crt;
  13.         ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
  14.         ssl_ciphers HIGH:!aNULL:!MD5;
  15.      ###############
  16. }

然後,重啟Nginx即可。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援IT科技網。

相關文章