nginx+tomat https ssl 部署 完美解决方案
关于nginx+tomcat https的部署之前网上一直有2种说法:
1.nginx和tomcat都要部署ssl证书
2.nginx部署ssl证书,tomcat增加ssl支持
在实际的部署过程中nginx的配置和ssl证书部署很顺利,但是tomcat用网上流传的说法配置之后,发现非静态内容无法正常使用。(项目用了dubbox,dubbox基于resteasy发布rest协议)
经过一系列折腾,最终总结出以下经验,希望能帮到其他人。
一. 申请SSL证书
SSL证书其实可以自己生成,但是因为自己生成的证书不是浏览器厂商认可的受信机构颁发,所以浏览器会打红叉!为了用户体验,所以
我们要到SSL证书厂商那里申请SSL证书。个人推荐 globalsign(淘宝用的) wosign.com(价格优惠) startssl(有免费版)。如果使用单域名DV证书,签发只要15分钟-2小时。厂商通常会把签发好的证书以邮件形式发送过来。
1. 自己生成 证书签名请求(CSR)和私钥(KEY)。可以使用厂商提供的工具https://www.trustasia.com/tools/csr-generator/
也可以使用openssl生成 openssl req -new -nodes -newkey rsa:2048 -keyout domain.key -out domain.csr
2.把 证书签名请求(CSR)和私钥(KEY)提供给厂商。
3.收到厂商签发好的证书。(私钥还是自己的)
二.部署证书到nginx并配置
nginx的证书部署相对简单。
1.确定nginx是否安装了ssl模块,如果没有需要重新mark install。(建议 pcre-8.38 zlib-1.2.8 openssl-1.0.2g 版本太高可能导致编译失败)
2.把厂商提供的 x.crt 内容追加到 x.cer, 然后把 x.key 和 x.cer 放到Nginx服务器
3.nginx.conf 增加https支持。主要是配置 80 和 443 端口的监听
server {
         listen     80;
        server_name  x;
        rewrite ^(.*)$  https://$host$1 permanent;
        }
  server {
        listen       443;
        server_name  x;
        ssl                  on;
        ssl_certificate      /etc/nginx/server.cer;
        ssl_certificate_key   /etc/nginx/server.key;
        ssl_session_timeout  5m;
        ssl_protocols TLSv1;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers   on;
         location / {
              client_max_body_size    16m;
              client_body_buffer_size 128k;
              proxy_pass                          http://online/;
              proxy_set_header        Host $host;
              proxy_set_header        X-Real-IP $remote_addr;
              proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header           X-Forwarded-Proto https;
              proxy_next_upstream   off;
              proxy_connect_timeout   30;
              proxy_read_timeout      300;
              proxy_send_timeout      300;
        }
    }
我这里做了http强跳到https,不需要这个功能,可以去掉 rewrite ^(.*)$ https:
三.tomcat增加对https协议的支持
1.Connector节点加入 redirectPort="443" proxyPort="443"
2.加入新的Value节点 <Valve className="org.apache.catalina.valves.RemoteIpValve"
                  remoteIpHeader="x-forwarded-for"
                  remoteIpProxiesHeader="x-forwarded-by"
                  protocolHeader="x-forwarded-proto"/>
nginx+tomat https ssl 部署 完美解决方案的更多相关文章
- Nginx+Tomcat Https SSL部署方案
		
1.软件版本: nginx-1.15+ tomcat-8.0+ 2.先解决一个疑问:Tomcat到底需不需要配置SSL? 答案:不需要 3.SSL申请 使用腾讯云.阿里云的服务器,会更加方便申请.(申 ...
 - 安卓手机上微信无法打开Https网址的完美解决方案
		
1,第三方网站检测网站的SSL证书是否正确的安装 https://www.geocerts.com/ssl-checker,大概率你会看到下边的场景,一个证书链完整的警告,如果想知道我的基础配置是什么 ...
 - Nginx 配置 HTTPS SSL
		
配置文件如下:[可以在阿里云上申请免费证书] #user nobody; worker_processes 1; events { worker_connections 1024; } http { ...
 - Nginx 配置 HTTPS SSL 代理
		
配置文件如下: #user nobody; worker_processes 1; events { worker_connections 1024; } http { include mime.ty ...
 - apache2 tomat  https 变成http的解决方案
		
1.apache2 设置 RequestHeader set X-Forwarded-Proto "https" 2.springboot 设置 server.tomcat.p ...
 - Nginx 502/504 Gateway time-out错误完美解决方案【转发】
		
在安装完Nginx+PHP-fpm+Mysql后,跑PHP的应用会经常出现504 Gateway Time-out 或者502 Bad Gateway的情况. Nginx 504 Gateway ...
 - Tomcat服务器配置https协议(Tomcat HTTPS/SSL 配置)
		
通常商用服务器使用https协议需要申请SSL证书,证书都是收费的,价格有贵的有便宜的.它们的区别是发行证书的机构不同,贵的证书机构更权威,证书被浏览器否决的几率更小. 非商业版本可以通过keytoo ...
 - Nginx自建SSL证书部署HTTPS网站
		
一.创建SSL相关证书 1.安装Nginx(这里为了测试使用yum安装,实际看具体情况) [root@localhost ~]# yum install nginx -y #默认yum安装已经支持SS ...
 - HTTPS 常见部署问题及解决方案
		
在最近几年里,我写了很多有关 HTTPS 和 HTTP/2 的文章,涵盖了证书申请.Nginx 编译及配置.性能优化等方方面面.在这些文章的评论中,不少读者提出了各种各样的问题,我的邮箱也经常收到类似 ...
 
随机推荐
- JS贪吃蛇小游戏
			
效果图展示: 具体实现代码如下: (1)html部分 !DOCTYPE html> <html> <head> <meta charset="utf-8& ...
 - D-Separation(D分离)-PRML-8.22-Graphical Model	 五 18 by 小军
			
D-Separation(D分离)-PRML-8.22-Graphical Model 五18by 小军 一.引言 在贝叶斯网络的学习过程中,经常会遇到(D-Separation)D-分离这个概念 ...
 - 题解 CF762A 【k-th divisor】
			
emmm...不能说是水题吧...小金羊以为考的是STL(手动滑稽)... 行,这个题说让分解因数(不一定非得质因数). 我们考虑到有第k个数有可能有\(x\cdot x=n\)的毒瘤情况, 并且题目 ...
 - ML科普向
			
转载自http://www.cnblogs.com/qscqesze/ Basis(基础): MSE(Mean Square Error 均方误差),LMS(LeastMean Square 最小均方 ...
 - 【洛谷P4706】取石子
			
Description  现在 Yopilla 和 yww 要开始玩游戏!  他们在一条直线上标记了 \(n\) 个点,从左往右依次标号为 \(1, 2, ..., n\) .然后在每个点上放置一 ...
 - 【数学】【CF1096C】 Polygon for the Angle
			
Description 给定一个角度 \(\theta\),请你寻找一个正 \(n\) 边型,满足在这个正 \(n\) 边型上找三个顶点 \(A,B,C\) (可以不相邻),使得 \(\angle A ...
 - Jenkins(一)---我理解的jenkins是这样的
			
1.齿轮 如果将 java / maven / ant / git / tomcat / jenkins 等等软件比喻为齿轮:如下图 两个软件在一起可以驱动另外一个软件:如下图 如果把这些软件要集成在 ...
 - lightoj 1205 数位dp
			
1205 - Palindromic Numbers PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 3 ...
 - Java入门:Java下载与安装方法
			
本文适合刚入门的Java编程的初学者阅读. JDK有两种下载方法,一个是官网下载,另一个是第三方网站下载.官网速度也许有点慢,慢的话可以考虑去第三方网站下载. 一.官网下载 1. 访问地址:http: ...
 - 重启电脑后,redis 6380端口关闭重启
			
zb@zb-computer:/usr/local/redis/etc$ /usr/local/redis/bin/redis-server redis.6380.conf &[1] 3062 ...