nginx 配置多个 ssl 证书

时间:2024-04-15 18:04:56

nginx 配置多个 ssl 证书

  1. usr/local/nginx/conf/下,新增ssl 文件夹,专门存放ssl 证书

  2. 在server 中,以 443 端口监听,并列写多个server, 针对不同的server_name, 配置对应的ssl证书,

    注意:记得针对非https的普通域名也要创建虚拟机【即创建单独的server监听端口】,否则只能访问https下的域名

      server {
    
            #SSL 访问端口号为 443
            listen 443 ssl; 
    
            #填写绑定证书的域名
            server_name api.test1.com; 
    
            #证书文件名称
            ssl_certificate ssl/1_api.test1.com_bundle.crt;
    
            #私钥文件名称
            ssl_certificate_key ssl/2_api.test1.com.key; 
            ssl_session_timeout 5m;
    
            #请按照以下协议配置
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    
            #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
            ssl_prefer_server_ciphers on;
    
         
            
            
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
      
    
      server {
    
              
            #SSL 访问端口号为 443
            listen 443 ssl; 
    
             #填写绑定证书的域名
            server_name law.test2.com; 
    
            #证书文件名称
            ssl_certificate ssl/1_api.test2.com_bundle.crt;
    
            #私钥文件名称
            ssl_certificate_key ssl/2_api.test2.com.key; 
            ssl_session_timeout 5m;
    
            #请按照以下协议配置
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    
            #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
            ssl_prefer_server_ciphers on;
    
    
            location /api {
                proxy_pass https://api.test1.com;
            }
    
            location / {
                root   /home/test2/webapp/api;
                index  index.html index.htm;
            }
            
            
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    
       # 这段不能少,否则无法监听非 https 的 server
      server {     
            listen       80;
            server_name  api.test2.com;
            
            location /api {
                proxy_pass https://api.test1.com;
            }
    
            location / {
                root   /home/test2/webapp/api;
                index  index.html index.htm;
            }
            
            
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }