首页 > 系统相关 >nginx 如何强制跳转 https

nginx 如何强制跳转 https

时间:2024-01-25 16:13:29浏览次数:28  
标签:set ssl server nginx proxy https 跳转 com

本项目 nginx 作为代理服务

项目上线,客户说要加个安全证书 ,于是安全证书是加上了,可是htttp和https都能访问网站,客户要求不行必须强制用带有https的地址访问

开整

这是 http 和https 都能访问的 nginx.conf  关键配置

   
    server {

        listen       80;
        listen       443 ssl;
        
        server_name  xxxxon.com www.xxx.com;
        
        
        ssl_certificate      /usr/local/server/cert/xxx.com_bundle.pem;
        ssl_certificate_key  /usr/local/server/cert/xxx.com.key;

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

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

        location / {
            proxy_pass http://1x6.1x.1xx.138:8888;
            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;
        }

    }
 

因为监听了两个端口号 导致http和https都能访问   注:443是监听ssl证书的端口 80是默认端口

改成以下这样即可

 
    server {

        listen       80;
        
        server_name  xxxx.com www.xxxx.com;
        
        return 301 https://$server_name$request_uri;
    }
    
    server {

        listen       443 ssl;
        
        server_name  xxxx.com www.xxxx.com;
        
        
        ssl_certificate      /usr/local/server/cert/xxxx.com_bundle.pem;
        ssl_certificate_key  /usr/local/server/cert/xxxx.com.key;

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

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

        location / {
            proxy_pass http://xxx.xx.xxx.xxx:8888;
            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;
        }

    }
 

第一个服务端口是监听80,重定向到带有https 的协议的端口 也就是下面那一个443端口 

第二个本来就是 ssl端口 不用管控

 

已解决

 

还有一种方式告诉大家,也是无意间知道的 ,用mate页面刷新的方式

创建个html页面 ,插入这一句

<html>
<meta http-equiv="refresh" content="0;url=https://baidu.com/">
</html>

当你打开这个页面的时候 ,自然会重定向到带有安全证书的百度页面

这种方式你们可以自由发挥

 

标签:set,ssl,server,nginx,proxy,https,跳转,com
From: https://www.cnblogs.com/yelanggu/p/17987382

相关文章

  • 解决跨域问题的8种方法,含网关、Nginx和SpringBoot~
    跨域问题是浏览器为了保护用户的信息安全,实施了同源策略(Same-OriginPolicy),即只允许页面请求同源(相同协议、域名和端口)的资源,当JavaScript发起的请求跨越了同源策略,即请求的目标与当前页面的域名、端口、协议不一致时,浏览器会阻止请求的发送或接收。解决跨域问题方案跨域问题......
  • nginx 配置文件(路由转发)
    #usernobody;worker_processes1;#error_loglogs/error.log;#error_loglogs/error.lognotice;#error_loglogs/error.loginfo;#pidlogs/nginx.pid;events{worker_connections1024;}http{includemime.types;defau......
  • Java中的HTTPS通信
    在Java中实现HTTPS通信,主要涉及到SSL/TLS协议的使用,用于提供数据传输的安全性。下面我们将深入探讨如何使用Java进行HTTPS通信。一、基本概念HTTPS,全称为HypertextTransferProtocolSecure,是HTTP的安全版本。它使用SSL/TLS协议对传输的数据进行加密,确保数据在传输过程中的安全。......
  • Nginx正向代理https
    Nginx支持正向代理http协议,但是不支持https协议,如果需要Nginx实现https协议的正向代理,需要使用第三方模块。参考地址:https://blog.csdn.net/weixin_43834401/article/details/130670792Nginx下载地址:https://nginx.org/en/download.html第三方模块下载地址:https://github.com/......
  • 44从零开始用Rust编写nginx,命令行参数的设计与解析及说明
    wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/......
  • nginx配置支持ws,并解决跨域
    修改配置文件nginx.confserver{listen443ssl;server_nameexcalidraw.haimaotv.com;ssl_certificate/opt/nginx-1.24.0/excalidraw.haimaotv.com_bundle.crt;ssl_certificate_key/opt/nginx-1.24.0/excalidraw.haimaotv.com.key;ssl_se......
  • Nginx视频地址配置
    #视频资源地址location/video/{add_headerAccess-Control-Allow-Origin*;add_headerAccess-Control-Allow-Methods'GET,POST,OPTIONS';add_headerAccess-Control-Allow-Headers'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-R......
  • vue-helper 点击跳转插件 在 methods里面互相调用函数,会产生两个函数definitions ,然后
    vue-helper点击跳转插件在methods里面互相调用函数,会产生两个函数definitions,然后就回弹出框让你选择原因:换了台电脑,又从新配置下vscode"editor.gotoLocation.multipleTypeDefinitions":"goto","editor.gotoLocation.multipleReferences":"goto","editor.got......
  • .NET Framework 4 请求https接口
    usingSystem;usingSystem.Collections.Generic;usingSystem.IO;usingSystem.Linq;usingSystem.Net;usingSystem.Text;usingSystem.Web;usingNewtonsoft.Json;namespaceTest.A{publicstaticclassHttpHelper{publicstaticTPostHttp......
  • 浏览器http自动跳转https解决方法
    在某个浏览器用https登录过之后,浏览器会自动改为https访问,导致测试环境进不去,需要删除hsts,不同浏览器的处理办法为:IE浏览器1.地址栏中输入edge://net-internals/#hsts2.在Deletedomain中输入项目的域名,并Delete(删除)3.可以在Querydomain测试是否删除成功。Chrome浏览器1.地......