Nginx+Tomcat配置HTTPS/SSL证书

在同时部署了Nginx和Tomcat的服务器上,可以使用Nginx来将服务器地址/域名的80端口映射到Tomcat的8080端口,从而不需要更改tomcat的配置端口来实现域名的直接访问。

目录

端口转发

配置HTTPS/SSL证书

可能出现的问题


 

端口转发

Nginx配置:

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass  http://47.95.119.xxx(你的IP地址):8080;
        }
    }

使用以上代码将80端口映射到Tomcat的8080端口,从而实现不需要加端口号可以直接使用域名/IP地址访问。

 

配置HTTPS/SSL证书

而进行HTTPS/SSL配置的的时候又遇到了问题,博主使用的是阿里云提供的免费SSL证书,在下载证书时发现其本身就提供了Nginx和Tomcat两个版本的证书,具体来使用哪个配置呢?

Nginx+Tomcat配置HTTPS/SSL证书_第1张图片

其实,对于Nginx映射Tomcat的服务器,只需要配置Tomcat的SSL证书就可以了,对于Nginx只需要把原本的地址映射改为域名映射。

 

以Tomcat8的配置作为例子:

server.xml配置:





    

而Nginx的配置更改为

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass  http://域名:8080;
        }
    }

如果需要开启HTTP强制跳转HTTPS,则需要对web.xml进行配置,在文件后添加以下内容:

  
      
    CLIENT-CERT  
    Client Cert Users-only Area  
  
  
      
      
        SSL  
        /*  
      
      
        CONFIDENTIAL  
      

这样,Nginx+Tomcat服务器的HTTPS/SSL证书配置就完成了!

访问结果为:

Nginx+Tomcat配置HTTPS/SSL证书_第2张图片

 

可能出现的问题

出现这种情况是因为Nginx的端口转发写的是IP地址而不是域名

Nginx+Tomcat配置HTTPS/SSL证书_第3张图片

 

如果出现下图这种情况记得放行443端口!!

Nginx+Tomcat配置HTTPS/SSL证书_第4张图片

 

希望能给各位提供参考和帮助。有问题可以留言或者Q我:9687637

你可能感兴趣的:(Tomcat,tomcat,ssl,nginx)