首页 > 系统相关 >nginx配置http跳转https的几种要求和方式记录

nginx配置http跳转https的几种要求和方式记录

时间:2023-11-07 14:37:15浏览次数:27  
标签:http cn ssl ciphers server nginx 跳转 81 com

以nginx-1.23.2测试

 (80被占用了,测试换成81端口)

要求一:nginx端口有443,81,即能访问http访问81,也能https访问。

nginx配置如下:

    server {
         listen       81 ;
         listen       443 ssl;
         server_name   xx.com.cn 192.168.3.1 127.0.0.1;

         ssl_certificate      server.pem;  #证书和配置文件同一目录
         ssl_certificate_key  server.key;
         ssl_session_timeout  5m;
         ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
         #ssl_ciphers  HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;
         ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!3DES:!ADH:!RC4:!DH:!DHE;
         ssl_prefer_server_ciphers   on;

....

测试访问

http://xx.com.cn:81/
https://xx.com.cn/

 

要求二:nginx端口有443,81,访问81强制跳转到https访问。

有两种配置方式

  方式一:

server {
         listen       81;
         server_name  xx.com.cn 192.168.3.1 127.0.0.1;
         return       301 https://$server_name/$request_uri;
    }    

server {
         listen       443 ssl;
         server_name   xx.com.cn 192.168.3.1 127.0.0.1;

         ssl_certificate      server.pem;  #证书和配置文件同一目录
         ssl_certificate_key  server.key;
         ssl_session_timeout  5m;
         ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
         #ssl_ciphers  HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;
         ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!3DES:!ADH:!RC4:!DH:!DHE;
         ssl_prefer_server_ciphers   on;

....

 

  方式二:

server {
         listen       81;
         server_name  xx.com.cn 192.168.3.1 127.0.0.1;
         rewrite ^/(.*) https://$server_name/$1 permanent;
    }    

server {
         listen       443 ssl;
         server_name   xx.com.cn 192.168.3.1 127.0.0.1;

         ssl_certificate      server.pem;  #证书和配置文件同一目录
         ssl_certificate_key  server.key;
         ssl_session_timeout  5m;
         ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
         #ssl_ciphers  HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;
         ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!3DES:!ADH:!RC4:!DH:!DHE;
         ssl_prefer_server_ciphers   on;

....

 

访问方式:

http://xx.com.cn:81/   -->会强制跳转到下面https
https://xx.com.cn/

 

要求三:nginx端口使用非443,81端口,https使用8443,http使用81端口访问。

    server {
         listen       81 ;
         listen       8443 ssl;
         server_name   xx.com.cn 192.168.3.1 127.0.0.1;

         ssl_certificate      server.pem;  #证书和配置文件同一目录
         ssl_certificate_key  server.key;
         ssl_session_timeout  5m;
         ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
         #ssl_ciphers  HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;
         ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!3DES:!ADH:!RC4:!DH:!DHE;
         ssl_prefer_server_ciphers   on;

....

 

访问测试

http://mfa.vgtech.com.cn:81/
https://mfa.vgtech.com.cn:8443/

 

要求四:nginx端口使用非443,81端口,http使用81端口访问,强制跳转到https的8443。

同样有两种方式

方式一:

server {
         listen       81;
         server_name  xx.com.cn 192.168.3.1 127.0.0.1;
         return       301 https://$server_name:8443/$request_uri;
    }    

server {
         listen       8443 ssl;
         server_name   xx.com.cn 192.168.3.1 127.0.0.1;

         ssl_certificate      server.pem;  #证书和配置文件同一目录
         ssl_certificate_key  server.key;
         ssl_session_timeout  5m;
         ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
         #ssl_ciphers  HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;
         ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!3DES:!ADH:!RC4:!DH:!DHE;
         ssl_prefer_server_ciphers   on;

....

 

方式二:

server {
         listen       81;
         server_name  xx.com.cn 192.168.3.1 127.0.0.1;
         rewrite ^/(.*) https://$server_name:8443/$1 permanent;
    }    

server {
         listen       443 ssl;
         server_name   xx.com.cn 192.168.3.1 127.0.0.1;

         ssl_certificate      server.pem;  #证书和配置文件同一目录
         ssl_certificate_key  server.key;
         ssl_session_timeout  5m;
         ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
         #ssl_ciphers  HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;
         ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!3DES:!ADH:!RC4:!DH:!DHE;
         ssl_prefer_server_ciphers   on;

....

 

 

要求五:nginx端口仅开通8443一个端口,要求访问http时,强制跳转到8443的https。

server {
         listen       8443 ssl;
         server_name   xx.com.cn 192.168.3.1 127.0.0.1;

         ssl_certificate      server.pem;  #证书和配置文件同一目录
         ssl_certificate_key  server.key;
         ssl_session_timeout  5m;
         ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
         #ssl_ciphers  HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;
         ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!3DES:!ADH:!RC4:!DH:!DHE;
         ssl_prefer_server_ciphers   on;
         error_page 497 301 https://$http_host$request_uri;

....

 

访问测试

mfa.vgtech.com.cn:8443
https://mfa.vgtech.com.cn:8443

 

标签:http,cn,ssl,ciphers,server,nginx,跳转,81,com
From: https://www.cnblogs.com/dannylinux/p/17814820.html

相关文章

  • GuzzleHttp 超时后处理
     publicfunctionhttpTest(){$url="自己可以写一个模拟地址,例如下面的httpTest2先让他挂起一定的时间,timeout设置超时时间,如果超过timeout的时间会自动抛出异常,去发短信等...";$client=newClient();try{$respo......
  • nginx 配置反向代理
    什么是反向代理?代理:通过客户机的配置,实现让一台服务器(代理服务器)代理客户机,客户的所有请求都交给代理服务器处理。反向代理:用一台服务器,代理真实服务器,用户访问时,不再是访问真实服务器,而是代理服务器。nginx可以当做反向代理服务器来使用:我们需要提前在nginx中配置好反向......
  • QT发起http/https请求
    示例1、在.pro工程描述文件中添加网络模块QT+=network2、示例代码#ifndefMAINWINDOW_H#defineMAINWINDOW_H#include<QMainWindow>#include"ui_mainwindow.h"#include<QDebug>#include<QWidget>#include<QObject>#include<QHttpMultiPar......
  • http参数解析
    http传参解析第一种:/delete/{id}前端传参:get、restful;后端接参:@GetMapping、@PathVariable第二种:/delete?id=11前端传参:get、params;后端接参:@GetMapping、@RequestParam第三种:{id:1}前端传参:post、data;后端接参:@PostMapping、@Req......
  • 异常详细信息: System.Web.HttpException: 服务器太忙
    HTTP双连接限制HTTP规范表明,一个HTTP客户端与任一服务器最多可以同时建立两个TCP连接。这可以防止单个浏览器在浏览某个页面(例如,具有120个嵌入的缩略图)时,由于连接请求过多而使服务器负载过重。此时,浏览器将仅创建2个连接,然后通过这两个管道开始发送120个HTTP请求,而......
  • http://localhost:xxxxx/sockjs-node/info?t=1699323049868
    http://localhost:xxxxx/sockjs-node/info?t=1699323049868 sockjs-node是一个JavaScript库,提供跨浏览器JavaScript的API,创建了一个低延迟、全双工的浏览器和web服务器之间通信通道。解决办法: 配置devServer,然后重启项目1.在vue.config.js中找到devServer中加入 host:'l......
  • 项目中难点-A页面中填写查询条件并查询出表格数据后,点击详情跳转页面B,B页面返回A页面
    页面缓存keep-alive1、在路由routes中配置需要进行缓存的页面keepAlive:truemeta:{keepAlive:true,title:"页面名称",}如图: 2、在router-view显示的入口页面APP.vue中,对需要的页面进行缓存<template><divid="app"><router-viewv-if="!$route.meta.kee......
  • requests-mock:轻松模拟HTTP请求的利器
    一、简介requests-mock一个python库,用于单元测试中模拟HTTP请求的响应,它可以进行来模拟接口的各种场景。安装:pipinstallrequests-mock二、使用方法模拟post请求 importrequestsimportrequests_mockdeftest_01():withrequests_mock.Mocker()as......
  • nginx多域名 多首页配置
    #user nobody;worker_processes auto;worker_cpu_affinityauto; error_log /midware/nginx/logs/error.loginfo;#error_log logs/error.log notice;#error_log logs/error.log info; pid    logs/nginx.pid;  events{  useepoll;......
  • 207-nginx 或者tomcat报错:413 Request Entity Too Large
    http{#...client_max_body_size20M;#设置最大允许大小为20MB#...}tomcat413RequestEntityTooLarge<Connectorport="8080"protocol="HTTP/1.1"connectionTimeout="20000"redirectPort=&quo......