nginx 配置多个 ssl 证书
-
在
usr/local/nginx/conf/
下,新增ssl
文件夹,专门存放ssl
证书 -
在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; } }