还之前欠下的债https(nginx+tomcat)配置

目的

nginx和tomcat配置支持https访问。
由引言可知,要支持https,需要安装证书。

配置https

1、生成证书For Nginx
以 openssl生成证书为例。
1、安装openssl
下载地址:http://slproweb.com/products/Win32OpenSSL.html
 
直接安装Win64OpenSSL-1_1_0g.exe即可
2、 配置环境变量OPENSSL_CONF
值为openssl.cnf全路径,例:D:\Program Files\OpenSSL-Win64\bin\cnf\openssl.cnf
3、 生成证书
首先,进入你想创建证书和私钥的目录,例如:
$ cd /usr/local/nginx/conf
1)创建服务器私钥,命令会让你输入一个口令:
$ openssl genrsa -des3 -out server.key 1024
2)创建签名请求的证书(CSR):
$ openssl req -new -key server.key -out server.csr
3)在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:
$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out server.key
4)最后标记证书使用上述私钥和CSR:
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

2、配置

Nginx和tomcat集成支持https访问,有2种配置方案
方案1:Tomcat自身安装了证书,nginx直接跳转到tomcat的https地址。
方案2:Tomcat不安装证书,仅配置对https的支持,由nginx跳转到tomcat的http地址。
方案一
Tomcat自身安装证书,nginx直接跳转到tomcat的https地址
1、Tomcat安装https证书
1、java环境:因为SUN公司提供了制作证书的工具keytool。
在JDK 1.4以后的版本中都包含了这一工具,它的位置为<JAVA_HOME>\bin\keytool.exe。
2、创建证书的命令
keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "f:\tomcat.keystore"  

参数的意思如下:


3、修改server.xml
找到如下已经被注释的代码:
 
去掉注释,修改为
 
clientAuth         如果设为true,表示Tomcat要求所有的SSL客户出示安全证书,对SSL客户进行身份验证
keystoreFile 指定keystore文件的存放位置,可以指定绝对路径,也可以指定相对于<CATALINA_HOME>(Tomcat安装目录)环境变量 的相对路径。如果此项没有设定,默认情况下,Tomcat将从当前操作系统用户的用户目录下读取名为“.keystore”的文件。
keystorePass 指定keystore的密码,如果此项没有设定,在默认情况下,Tomcat将使用“changeit”作为默认密码。
sslProtocol 指定套接字(Socket)使用的加密/解密协议,默认值为TLS,用户不应该修改这个默认值。
ciphers 指定套接字可用的用于加密的密码清单,多个密码间以逗号(,)分隔。如果此项没有设定,在默认情况下,套接字可以使用任意一个可用的密码。
2、Nginx直接跳转Tomcat的https地址
server {
#监听443端口
listen       443 ssl;
server_name  localhost 127.0.0.1 192.168.3.162;

#配置SSL证书和密钥
ssl_certificate      D:/server.crt;
ssl_certificate_key  D:/server.key;

#可选配置
#ssl_session_timeout  5m;
#ssl_protocols  SSLv2 SSLv3 TLSv1;
#ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
#ssl_prefer_server_ciphers   on;

location /ou/ {
proxy_pass https://192.158.43.23 :8000;
proxy_set_header        X-Real-IP       $remote_addr;  
#此处需加上:$server_port,防止跳转到默认80端口
proxy_set_header        Host            $host:$server_port; 
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;  
proxy_pass_request_headers              on;
proxy_redirect off;
proxy_connect_timeout      240;
proxy_send_timeout         240;
proxy_read_timeout         240;
        }
}

方案二

Tomcat不安装证书,仅配置对https的支持,由nginx跳转到tomcat的http地址。
1、Tomcat配置https支持
仅配置对https的支持,修改server.xml增加下图所示内容
 
<Valve className="org.apache.catalina.valves.RemoteIpValve"
                  remoteIpHeader="x-forwarded-for"
                  remoteIpProxiesHeader="x-forwarded-by"
                  protocolHeader="x-forwarded-proto"
 protocolHeaderHttpsValue="https"
            />
2、Nginx跳转Tomcat的http地址
server {
#监听443端口
listen       443 ssl;
server_name  localhost 127.0.0.1 192.168.3.162;

#配置SSL证书和密钥
ssl_certificate      D:/server.crt;
ssl_certificate_key  D:/server.key;

#可选配置
#ssl_session_timeout  5m;
#ssl_protocols  SSLv2 SSLv3 TLSv1;
#ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
#ssl_prefer_server_ciphers   on;

location /ou/ {
proxy_pass http://192.158.43.23 :8000;
proxy_set_header        X-Real-IP       $remote_addr;  
#此处需加上:$server_port,防止跳转到默认80端口
proxy_set_header        Host            $host:$server_port; 
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;  
proxy_pass_request_headers              on;
proxy_set_header X-Forwarded-Proto  $scheme; 
proxy_redirect off;
proxy_connect_timeout      240;
proxy_send_timeout         240;
proxy_read_timeout         240;
        }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值