nginx配置https转发到tomcat(使用自签名的证书)
一、使用openSSL生成自签名的证书
1、生成RSA私钥
命令:openssl genrsa -des3 -out server.key 1024
说明:生成rsa私钥,des3算法,1024强度,server.key是秘钥文件名
2、生成证书签名请求CSR
命令: openssl req -new -key server.key -out server.csr -config openssl.cnf
说明:openssl.cnf是OpenSSL的配置文件,通常放在/usr/lib/ssl/openssl.cnf
注意:需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email。其中Common Name,必须写域名,若是测试可以写localhost
3、生成自签名的证书
命令: openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
二、nginx配置https
server{
listen ssl;
server_name 你的域名或ip;
keepalive_timeout ;
ssl_protocols TLSv1 TLSv1. TLSv1.;
ssl_ciphers AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
ssl_certificate /etc/nginx/ssl/server.crt; #证书路径
ssl_certificate_key /etc/nginx/ssl/server.key; #私钥路径
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
location / {
proxy_pass http://127.0.0.1:8080/; #转发到tomcat
proxy_set_header Host $http_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 $scheme;
}
}
三、强制http转https
server {
listen ;
server_name 你的域名或ip;
rewrite ^(.*)$ https://$host$1 permanent; #强制转https
location ~ / {
root /var/www/html/;
index index.html index.php index.htm;
}
}
四、tomcat配置server.xml
# 注意几个请求头和nginx虚拟主机的配置中应该是对应的
# X-Forwarded-For、X-Forwarded-Proto等
<Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="X-Forwarded-For" protocolHeader="X-Forwarded-Proto" protocolHeaderHttpsValue="https"/>
注意:自签名的https证书是很不安全的,很多浏览器也会提示网址不完全,给用户不好的映象。建议大家还是去申请一个正式的证书
文章借鉴自:
OpenSSL生成自签名的证书:https://www.cnblogs.com/hnxxcxg/p/7610582.html
nginx配置https:https://blog.csdn.net/hylexus/article/details/53152701
http强转https:https://www.cnblogs.com/kevingrace/p/6187072.html
nginx配置https转发到tomcat(使用自签名的证书)的更多相关文章
- nginx配置https及Android客户端访问自签名证书
前一篇随笔通过keytool生成keystore并为tomcat配置https,这篇随笔记录如何给nginx配置https.如果nginx已配置https,则tomcat就不需要再配置https了.通 ...
- nginx配置https转发http
生成ssl证书: 1.首先要生成服务器端的私钥,运行时会提示输入密码,此密码用于加密key文件: openssl genrsa -des3 -out server.key 1024 2.去除key文件 ...
- Nginx 配置Https转发http、 websocket
系统启动Nginx后,报 [emerg] bind() to 0.0.0.0:XXXX failed (13: Permission denied)错误的处理方式,分为两种: 第一种:端口小于1024 ...
- nginx配置https转发的一个例子
server { listen ; #https默认端口不是80,而是443 server_name www.test.com; ssl on; ssl_certificate cert/.pem; ...
- Nginx 配置 HTTPS(多域名)
平常开发要求比较低, 依然在用 HTTP, 但到了微信小程序就不行了, 腾讯和苹果都对 API 提出了 HTTPS 的要求. 尤其是苹果, 不仅要求 HTTPS, 还要求 TLS 协议版本要在 1.2 ...
- RedHat 6.6下安装nginx,配置HTTPS
1.安装依赖包 yum -y install pcre-devel openssl-devel zlib-devel 2.下载nginx安装包到服务器上,当前使用版本nginx-1.15.5.tar. ...
- Nginx配置Https
1.申请证书: https://console.qcloud.com/ssl?utm_source=yingyongbao&utm_medium=ssl&utm_campaign=qc ...
- Nginx配置proxy_pass转发的/路径问题
Nginx配置proxy_pass转发的/路径问题 在nginx中配置proxy_pass时,如果是按照^~匹配路径时,要注意proxy_pass后的url最后的/,当加上了/,相当于是绝对根路径,则 ...
- 【转】Linux下nginx配置https协议访问的方法
一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/ ...
随机推荐
- atomic write pipe
阅读 skynet 代码 socket_server 部分,发现对 socket 的写操作流程是这样的: 1. 各个服务(各线程)将数据写到 sendctrl_fd,这是一个 pipe 的 写端 2. ...
- Fusioncharts的数字格式化
1. 小数点位数格式化 <chart ... decimals='2' > Eg.数值12.432, 13.4 and 13,使用<chart ... decimals= ...
- Html 常见meta
html 的meta标签对网页渲染及SEO搜索引擎起着不可忽视的作用.详细的写法一段时间不写,容易忘,所以整理了一下,方便需要时查看. <!DOCTYPE html> <!-- 使用 ...
- linux上安装redis4.0.9
redis安装从3.0的版本到现在4.0的版本,现在装一个4.0的版本供大家学习使用. 先yum安装gcc yum -y install gcc 已加载插件:fastestmirror, langpa ...
- django-子项目
当我们开始做一个项目的时候 ,当我们做的项目越来越大的时候py文件已经不足以分担 并且看起来不清晰 所以我们需要 新建一个子项目 这样的话可以方便管理 我们要建立子项目的话先进入那个项目的文件 ...
- JS 在页面上直接将json数据导出到excel,支持chrome,edge,IE10+,IE9,IE8,Safari,Firefox
JS 在页面上直接将json数据导出到excel,支持chrome,edge,IE10+,IE9,IE8,Safari,Firefox <html> <head> </h ...
- 剑指offer十九之顺时针打印矩阵
一.题目 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2, ...
- (转)python WSGI框架详解
原文:https://www.cnblogs.com/shijingjing07/p/6407723.html?utm_source=itdadao&utm_medium=referral h ...
- gvim配置相关
用 vundle 来管理 vim 插件(包含配置文件vimrc和gvimrc) gvim插件管理神器:vundle的安装与使用 Vim插件管理Vundle Linux 下VIM的配置 Vim配置系列( ...
- python 继承 多态
python 的继承 #-*- coding:utf-8 -*-class A(object): def __init__(self): print('A:我是肯定会执行的!!') def fun(s ...