Tomcat8.5配置https和SpringBoot配置https

Tomcat8.5配置https

第一步用JDK的keytools工具生成密钥文件

C:\Users\Administrator>D:\Java\jdk1.8.0_201\bin\keytool.exe -genkeypair -alias "
tomcat" -keyalg "RSA" -keystore "F:\tomcat.keystore" -validity 365

在这里插入图片描述
会出现如下提示:

JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore G:\tomcat
.keystore -destkeystore G:\tomcat.keystore -deststoretype pkcs12" 迁移到行业标准
格式 PKCS12。

可以选择使用如上提示的命令把密钥转换为PKCS12格式的,可以选择不转换,一般没有区别。
在这里插入图片描述

第二步 配置tomcat8.5

在这里插入图片描述
打开server.xml配置文件增加如下配置:

    <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" 
               clientAuth="false" sslProtocol="TLS"
               keystoreFile="E:\tomcat.keystore"  
               keystorePass="123456"
               >
    </Connector>

重启Tomcat

用https访问站点

https协议已被配置为443端口
访问站点可以省略端口:
https://localhost
http依然可以用
http://localhost:8080
在这里插入图片描述
在这里插入图片描述
因为我的443端口被其它程序占用了,出现了403错误,所以我是把https的端口改为了9443,这个具体要视具体情况设置,最好还是用443端口。

> netstat -ano | findstr "443"

在这里插入图片描述
在这里插入图片描述


SpringBoot配置https

第一步 配置application文件

(使用之前生成的密钥文件)

server:
  port: 9443
  ssl:
    key-store: E:\tomcat.keystore
    key-store-password: 123456
    key-alias: tomcat
    key-store-type: PKCS12

这样就可以使用https访问站点了。

http转https请求访问

在应用启动类加上如下代码即可。

    @Bean
    public Connector connector(){
        Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(80);
        connector.setSecure(false);
        connector.setRedirectPort(9443);
        return connector;
    }

    @Bean
    public TomcatServletWebServerFactory tomcatServletWebServerFactory(Connector connector){
        TomcatServletWebServerFactory tomcat=new TomcatServletWebServerFactory(){
            @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);
            }
        };
        tomcat.addAdditionalTomcatConnectors(connector);
        return tomcat;
    }

在使用http访问站点时会自动转换为https.
注意端口的配置和80、443的默认访问。
在这里插入图片描述

好的,以下是一份简单的部署文档,希望能对您有所帮助。 ## 环境配置 1. 安装 JDK 1.8 您可以从 Oracle 官网下载 JDK 1.8 安装包,根据提示完成安装。 2. 安装 MySQL 8.0 您可以从 MySQL 官网下载 MySQL 8.0 安装包,根据提示完成安装。 3. 安装 Maven 3.8.1 您可以从 Maven 官网下载 Maven 3.8.1 安装包,根据提示完成安装。 4. 安装 Tomcat 8.5.87 您可以从 Tomcat 官网下载 Tomcat 8.5.87 安装包,根据提示完成安装。 5. 安装 Spring Boot 2.7.11 您可以通过 Maven 安装 Spring Boot 2.7.11,具体命令如下: ``` mvn org.springframework.boot:spring-boot-maven-plugin:2.7.11:run ``` ## 模型部署 1. 下载代码 您可以从代码仓库中下载代码,使用以下命令: ``` git clone <代码仓库地址> ``` 2. 修改配置文件 在项目中找到 `application.properties` 文件,修改其中的数据库连接信息,例如: ``` spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=123456 ``` 3. 打包并部署 在项目根目录下执行以下命令,进行打包: ``` mvn clean package ``` 打包完成后,在 `target` 目录下会生成一个 `war` 包,将该包复制到 Tomcat 的 `webapps` 目录下,启动 Tomcat 即可。 ## 接口设计 该项目提供以下接口: 1. 查询用户信息 ``` GET /user/{id} ``` 参数: - `id`:用户 ID 返回值: ``` { "id": 1, "name": "张三", "age": 20 } ``` 2. 添加用户信息 ``` POST /user ``` 参数: ``` { "name": "张三", "age": 20 } ``` 返回值: ``` { "id": 1, "name": "张三", "age": 20 } ``` ## 安全性考虑 为了保证接口的安全性,您可以在 Tomcat配置 SSL 证书,使用 HTTPS 协议进行通信。另外,您可以在 Spring Boot 中配置身份认证机制,只有认证通过的请求才能访问接口。 ## 性能优化 为了提高接口的性能,您可以在 Tomcat配置连接池,减少数据库连接的创建和销毁次数。另外,您可以在 Spring Boot 中配置缓存机制,减少数据查询的次数。 ## 错误处理 为了更好地处理错误情况,您可以在 Spring Boot 中配置全局异常处理机制,对各种错误情况进行统一的处理。另外,您可以在接口中返回标准的错误信息,方便客户端进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值