当前位置: 首页 > news >正文

Nginx+Spring boot配置https

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Nginx的nginx.conf配置:
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    
    # HTTPS server
    #
    server {
        listen       443 ssl;
        server_name  localhost;

        ssl_certificate      vcm.cer;
        ssl_certificate_key  vcm.key;

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

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        
        location / {
            proxy_pass https://localhost:8443;
            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_redirect    off;
        }

        location  /redirect/station {
            proxy_pass $arg_destScheme://$arg_destIp:$arg_destPort$arg_destUrl?token=$arg_token?;
            if ($http_user_agent !~ 'Chrome'){
                add_header Content-Type "application/octet-stream";
                add_header Content-Disposition "attachment; filename=\"$arg_hFilename\"";
            }
        }
        
        location  /redirect/ipsan {
            proxy_pass $arg_destScheme://$arg_destIp:$arg_destPort$arg_destUrl?token=$arg_token?;
            if ($http_user_agent !~ 'Chrome'){
                add_header Content-Type "application/octet-stream";
                add_header Content-Disposition "attachment; filename=\"$arg_hFilename\"";
            }
        }
        
        location  /redirect/hikcstor {
        
            set $destUrl $arg_destUrl;
            if ($args ~* &destUrl=(.*)){
                set $destUrl $1;
            }
            proxy_pass $arg_destScheme://$arg_destIp:$arg_destPort$destUrl;
            proxy_pass_request_headers on;
            proxy_set_header Date "$arg_hDay $arg_hTime";
            proxy_set_header Host $arg_hHost;
            proxy_set_header Accept-Language $arg_hAcceptLanguage;
            proxy_set_header Authorization "$arg_hAuthTitle $arg_hAuthorization";
            proxy_set_header Content-Type $arg_hContentType;
            proxy_set_header Connection $arg_hConnection;
            add_header Content-Type "application/octet-stream";
            add_header Content-Disposition "attachment; filename=\"$arg_hFilename\"";
        }
    }

}

Spring boot方面:

application.property文件配置https:

server.port=8443

server.ssl.key-store=keystore.p12
server.ssl.key-store-password=msm-vcm
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=tomcat
server.session-timeout=3600

编写类配置tomcat,将所有的请求都转到加密的https

    @Bean
    public EmbeddedServletContainerFactory servletContainer() {
        TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint securityConstraint = new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                securityConstraint.addCollection(collection);
                context.addConstraint(securityConstraint);
            }
        };
        return tomcat;
    }

转载于:https://my.oschina.net/ffse54s/blog/1503803

相关文章:

  • python全栈开发从入门到放弃之常用模块和正则
  • WebSphere ssl证书公钥少于2048问题处理
  • MySQL运维实战(一)之 系统变量潜规则
  • 大数运算模板(高精度)
  • ajax基础一
  • Struts2验证框架的配置及validation.xml常用的验证规则
  • 【cocos2d-x 3.7 飞机大战】 决战南海I (七) 控制器的实现
  • oracle的loop等循环语句的几个用法小例子[转]
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 浪漫纯白记录爱的轨迹 西部数据移动存储“七夕”献礼
  • 六大存储技术或将敲响硬盘丧钟
  • 软银创下新纪录:930亿美元投资技术初创企业
  • Intel 160GB 2.5寸固态硬盘高价上市
  • 某系统由于struct2漏洞导致被完全攻陷
  • 定位与大数据邂逅,Wi-Fi大不相同
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • C学习-枚举(九)
  • iOS编译提示和导航提示
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Linux后台研发超实用命令总结
  • Lucene解析 - 基本概念
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • rabbitmq延迟消息示例
  • Transformer-XL: Unleashing the Potential of Attention Models
  • Vue.js-Day01
  • Web标准制定过程
  • 安卓应用性能调试和优化经验分享
  • 分布式熔断降级平台aegis
  • 搞机器学习要哪些技能
  • 微信开放平台全网发布【失败】的几点排查方法
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • FaaS 的简单实践
  • scrapy中间件源码分析及常用中间件大全
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (2)MFC+openGL单文档框架glFrame
  • (30)数组元素和与数字和的绝对差
  • (k8s中)docker netty OOM问题记录
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (五)IO流之ByteArrayInput/OutputStream
  • (转)关于pipe()的详细解析
  • .NET Core Web APi类库如何内嵌运行?
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname