nginx 配置https 并解决重定向后https协议变成了http的问题

配置如下:

server { 
    listen       80; 
    server_name  localhost; 
     
     return 301 https://localhost$request_uri; 
     charset UTF-8;

location / { 
      root   html;                  # 这个是指定一个项目所在目录 
      index  index.html index.htm;  # 这个是指定首页的文件名 
    } 
}

server { 
    listen       80 default backlog=2048; 
    listen       443 ssl; 
    server_name  localhost;

ssl_certificate      buduhuisi.crt;  # 这个是证书的crt文件所在目录 
    ssl_certificate_key  buduhuisi.key;  # 这个是证书key文件所在目录

ssl_session_cache    shared:SSL:1m; 
    ssl_session_timeout  5m;

ssl_ciphers  HIGH:!aNULL:!MD5; 
    ssl_prefer_server_ciphers  on;

location /esgcc-oms { 
                        proxy_pass         http://localhost:8080; 
                    proxy_redirect http:// https://; 
                        add_header         Cache-Control    no-store; 
                        proxy_set_header   Host             $host; 
                        proxy_set_header   X-Real-IP        $remote_addr; 
                        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

}

location / { 
      root   html;                  # 这个是指定一个项目所在目录 
      index  index.html index.htm;  # 这个是指定首页的文件名 
    } 
}

proxy_redirect http:// https:// 这个配置是解决重定向后https变成了http 的问题。

应用中配置: 
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
        <property name="prefix" value="/pages/" /> 
        <property name="suffix" value=".jsp" /> 
        <property name="order" value="1" /> 
        <property name="redirectHttp10Compatible" value="false" />   <!--重定向解决https 变成了http 的问题--> 
    </bean>

可以解决这个问题: 
400 Bad Request: The plain HTTP request was sent to HTTPS port

原文地址:https://www.cnblogs.com/lvjijun/p/11320276.html

时间: 2024-08-01 23:15:53

nginx 配置https 并解决重定向后https协议变成了http的问题的相关文章

nginx配置反向代理解决前后端分离跨域问题

摘自<AngularJS深度剖析与最佳实践>P132 nginx配置文件如下: server { listen 80; server_name your.domain.name; location / { # 把跟路径下的请求转发给前端工具链(如gulp)打开的开发服务器 # 如果是产品环境,则使用root等指令配置为静态文件服务器 proxy_pass http://localhost:5000/; } location /api/ { # 把 /api 路径下的请求转发给真正的后端服务器

免费申请 HTTPS 证书,开启全站 HTTPS

作者:HelloGitHub-追梦人物 文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 HTTP 报文以明文形式传输,如果你的网站只支持 HTTP 协议,那么就有可能遭受到安全攻击.你可以使用 Google 浏览器打开一个 HTTP 协议网站,会发现 Chrome 在网址的左边将这个网站标记为不安全. HTTPS 为 HTTP 报文提供了一个加密传输的通道,这样攻击者就无法窃听或者篡改传输的内容.要启用 HTTPS,必须向一个可信任机构申请一个 HTTPS 证书.专业的

关于Nginx配置Https server后,乱跳的问题解决记录

大部分的服务器上,我们会在一个Nginx服务下配置多个vhost,以最大化运用服务器资源.然而,为其中一个vhost域名启用 HTTPS 之后,发现百度统计的实时访客或入口页中,存在一些来自其它域名的请求.即通过 https://some-other-domain.com/some-url 来访问对应的 https://www.domain.com/some-url 结果就是 Google 浏览器显示了一个安全警告页面,认为这是一个不安全的网页.因为我只配置了 www.domain.com 的

Nginx配置https和wss

一.使用Nginx足够了 常见的服务器有三种: Nginx IIS Apache 这三种服务器都可以配置https,但是没必要全部知道,因为Nginx可以起到反向代理的作用,会配置Nginx就足够了. 二.关于HTTPS协议 HTTP协议默认端口号是80,HTTPS默认端口号是443.HTTPS协议=HTTP+SSL,而SSL是基于公钥加密算法的.当我们访问一个使用了HTTPS的网站时,这个网站将它的公钥告知浏览器,浏览器在发送请求数据时会使用公钥对数据进行加密,这样一来就不怕有人监听数据包了,

nginx配置HTTPS

使用ssl模块配置同时支持http和https并存 一,生成证书 # 1.首先,进入你想创建证书和私钥的目录,例如: cd /etc/nginx/ # 2.创建服务器私钥,命令会让你输入一个口令: openssl genrsa -des3 -out server.key 1024 # 3.创建签名请求的证书(CSR): openssl req -new -key server.key -out server.csr # 4.在加载SSL支持的Nginx并使用上述私钥时除去必须的口令: cp se

nginx 配置https并自签名证书

2016-10-28 转载请注明出处:http://daodaoliang.com/ 作者: daodaoliang 版本: V1.0.1 邮箱: [email protected] 参考链接: 这里 和 这里 和 官方文档 1. 制作服务器证书 服务器CA私钥: openssl genrsa -des3 -out ca.key 2048 制作解密后的CA私钥(一般无此必要): openssl rsa -in ca.key -out ca_decrypted.key ca.crt CA根证书(公

Windows下Nginx配置SSL实现Https访问(包含证书生成)

Vincent.李 Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https? HTTP全名超文本传输协议,客户端据此获取服务器上的超文本内容.超文本内容则以HTML为主,客户端拿到HTML内容后可根据规范进行解析呈现.因此,HTTP主要负责的是"内容的请求和获取".问题就出在这部分.行监控.劫持.阻挡等行为很容易导致网站泄密,一些关键参数比如登录密码开发者会在客户端

Nginx配置SSL证书部署HTTPS网站

一.什么是 SSL 证书,什么是 HTTPSSSL 证书是一种数字证书,它使用 Secure Socket Layer 协议在浏览器和 Web 服务器之间建立一条安全通道,从而实现:1.数据信息在客户端和服务器之间的加密传输,保证双方传递信息的安全性,不可被第三方窃听:2.用户可以通过服务器证书验证他所访问的网站是否真实可靠. HTTPS 是以安全为目标的 HTTP 通道,即 HTTP 下加入 SSL 加密层.HTTPS 不同于 HTTP 的端口,HTTP默认端口为80,HTTPS默认端口为44

为nginx配置https并自签名证书

一.把证书准备好. 步骤与使用OpenSSL自签发服务器https证书所述大同小异.在这里再重复一次. 1.制作CA证书: ca.key CA私钥: openssl genrsa -des3 -out ca.key 2048 制作解密后的CA私钥(一般无此必要): openssl rsa -in ca.key -out ca_decrypted.key ca.crt CA根证书(公钥): openssl req -new -x509 -days 7305 -key ca.key -out ca.