zoukankan      html  css  js  c++  java
  • spring boot (2):spring boot 打包tomcat、tomcat 部署多个项目、服务器部署项目SSL 设置(阿里云)

    一、spring boot 内置tomcat配置https:

    关于自签名证书可以看下上一篇 spring boot1

    更详细的可以看转载

    https://www.jianshu.com/p/8d4aba3b972d

    二、spring boot 打包war部署tomcat:

    maven构建的项目的同学可以看下这 https://blog.csdn.net/u013279563/article/details/81144154

    个人是用gradle所以详细点的说明一下gradle的打包过程,如下

    1.添加war 插件,在build.gradle 里添加:

    apply plugin: 'war'

    2.打包的时候,因为spring boot 在起步依赖里内嵌tomcat的,所以这边打包的时候需要排除一下

    tips(引用自):

    War插件 添加了两个依赖配置项providedCompileprovidedRuntime,这两个配置项分别和compile和runtime有相同的作用域,只是不将依赖打包到war文件  

    可以在idea右边的gralde界面中点击Gradle=>项目=>Task=>build=>点击build就可打包成war包,成功的文件夹在 build-> libs下面

    添加依赖->

    dependencies {
        compile("org.springframework.boot:spring-boot-starter-web")
        providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
    }

    3.启动类里需要对servlet初始化(不加不行!!!)

    package com.test;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.builder.SpringApplicationBuilder;
    import org.springframework.boot.web.support.SpringBootServletInitializer;
     
    @SpringBootApplication
    public class Application extends SpringBootServletInitializer {
     
      protected SpringApplicationBuilder configure(SpringApplicationBuilder     application) {
          return application.sources(Application.class);
      }
     
      public static void main(String[] args) throws Exception {
          SpringApplication.run(Application.class, args);
      }
    }

    在cmd到项目目录下执行 gradle war

    或者

     打包后在libs目录下:

     三、tomcat部署多个项目

    1.在conf/server.xml 中新增一个 Service节点(Catalina),新增~新增~

     

     定义红圈圈的部分,就当是一个新的service 来定义就好,域名、app目录、端口都可以不同。

    tips:appBase指向的目录和service节点的name属性指向的目录需要新建,如下图

     

    你多个项目丢在不同的webapps 文件夹中,启动tomcat的start.bat /start.sh

    四、tomcat配置SSL

    首先下载证书(这里使用的时候阿里提供的免费pfx)

     

     下载后因为是免费的证书,只有2个文件一个是pfx后缀的证书文件,另一个是password的文本文件,证书的秘钥在这个文本文件中

    在conf/server.xml 中配置安全连接节点

    如下:

    <Connector port="443" protocol="HTTP/1.1" 
                    SSLEnabled="true" 
                    scheme="https" 
                    secure="true" 
                    keystoreFile="cert/XXX.pfx" 
                    keystoreType="PKCS12" 
                    keystorePass="XXXXXX" 
                    clientAuth="false" 
                    SSLProtocol="TLSv1+TLSv1.1+TLSv1.2" 
                    ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>

    上面绿色加粗的地方需要自己修改:

    port 为指定的端口,443 为https 的默认端口,当然你也可以设置为其他。

    keystoreFile 为指定的证书文件,指向的tomcat目录下的相对路径,cert为新建的文件夹,如图

    keystorePass 为 password 中的秘钥(注意阿里每次新下载的password都不同)

    其他的属性可以不做修改

    注意:在增加新的connector 节点时(https)不需要删除原有service中的connector,对于tomcat来说,只不过是多了一个端口去访问应用罢了,所以如果你的http默认端口为80或8080之类的,是不需要删除的,当然,如果你只想保留443 也可以删除。

    六、http自动转向https

    http默认端口是80,https默认端口是443,所以如果我想要http自动跳转至https时就不要删除上面的注意里说的connector了

    http 配置如下:

    <Connector port="80" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="443" />

    redirectPort 修改为443 是为了对应第五步中的https 的port 443

    在conf/web.xml 中web-app节点中增加security-constraint 节点(就是上一篇中在通过java配置的安全限制配置,观察一下键值一致

    <security-constraint>
    
        <web-resource-collection >
    
                  <web-resource-name >SSL</web-resource-name>
    
                  <url-pattern>/*</url-pattern>
    
           </web-resource-collection>
    
           <user-data-constraint>
    
           <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    
           </user-data-constraint>
    
    </security-constraint>

    启动tomcat,输入http:// XXXXXXX   自动重定向至https~

    下面是相关链接:

    http 重定向 到https

     https://blog.csdn.net/zhangxing52077/article/details/72827770

    配置SSL 安全证书

    https://blog.csdn.net/gary_yan/article/details/77981303

    tip:windows server 显示文件后缀(...)

    删除(管理员权限的文件)

    https://jingyan.baidu.com/article/c910274be49569cd361d2db0.html

    成灰之前,抓紧时间做点事!!
  • 相关阅读:
    计算机硬件
    队列、堆、栈、堆栈的区别
    操作系统与应用程序的关系
    DNS与HTTPDNS
    配置静态路由传送网络包
    django的nginx配置
    视频流和文件传输相关协议
    HTTPS 对称加密和非对称加密
    HTTP1.1/2.0与QUIC协议
    mysql join联表 + id自增
  • 原文地址:https://www.cnblogs.com/jony-it/p/10673783.html
Copyright © 2011-2022 走看看