nginx+tomcat配置https

nginx代理https后,应用redirect https变成http,很多页面报404。情况类似http://blog.sina.com.cn/s/blog_56d8ea900101hlhv.html这篇文章中的描述。
解决办法:除了nginx配置SSL,在tomcat中也配置SSL。
 
tomcat配置
<Connector port="9443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150"  scheme="https" secure="true"
               keystoreFile="conf/ssl/xxxxxxxxx.jks" keystorePass="password"
               clientAuth="false" sslProtocol="TLS" />
 
#端口号可以自定义。
#keystoreFile指向刚才的jks文件
#keystorePass值为jks密码,就是下面第二步里设置的密码。
#这里重点要说明下jks证书生成的方法:
 
1、获取生成jks文件的需要的文件。这里需要2个文件,1个是私钥文件,另外一个是证书文件。
2、用第一步里的2个文件到以下站点生成一个jks文件
https://www.ssltools.org/certificate-convert.htm

所填项如下:
源格式 pem
目标格式 jks
证书文件 选择第一步里的server.crt
私钥文件 选择第一步里的 key.txt
Pem私钥密码  不填

密钥库密码和确认密码 自己设置一个,不加特殊符号,一会配置文件里用到(如server.xml)
提交后就能或者一个你们域名的jks文件(注意jks要5KB左右才是正确的,2KB左右的链不完整)
 
3、jks上传到java容器在的服务器上,路径只要不是webapps下就可以,然后到conf目录下server.xml里配置。
 
nginx的配置:
 
#红色地方是重点
http {
.....
upstream admin{
        server  10.173.18.246:9443;
     }
.....
 server {
        listen       443;
        .....
        location ~* ^/admin/.*.(do|jsp)$ {
                proxy_pass      https://admin;
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
 }
}
原文地址:https://www.cnblogs.com/Eivll0m/p/5142405.html