Tomcat 配置
在 Spring Boot 项目中,可以内置 Tomcat、Jetty、Undertow、Nerry 等容器。
当开发者添加了 spring-boot-starter-web 依赖后,默认会使用 Tomcat 作为 Web 容器。
如果需要对 Tomcat 进一步配置:
server.port=8081
还有很多配置,可以查看官方文档 Appendix A. Common application properties 一节。
Https 配置
jdk 提供了一个 java 数字证书管理工具 keytool,在\jdk\bin 目录下,通过这个工具可以自己生成一个数字证书,命令:
keytool -genkey -alias tomcathttps -keyalg RSA -keysize 2048 -keystore sang.p12 -validity 365
解释:
- -genkey 表示要创建一个新的秘钥
- -alias 表示 keystore 的别名
- -keyalg 表示使用加密算法是 RSA,非对称加密算法
- -keysize 表示秘钥的长度
- -keystore 表示生成的秘钥存放位置
- -validity 表示秘钥的有效时间,单位为天
在 cmd 窗口中直接执行如上命令,在执行过程中需要输入密码口令等信息,根据提示输入即可。
命令执行完后,会在当前用户目录下生成一个名为 sang.p12 的文件,将这个文件复制到项目的根目录下,然后再 application.properties中做如下配置:
server.ssl.key-store=sang.p12
server.ssl.key-alias=tomcathttps
server.ssl.key-store-password=123456
分别是密钥文件名,密钥别名,cmd命令执行过程输入的密码
项目根目录得找对了:
注意:证书是自己生成的,不被浏览器认可,此时添加信任或者继续前进即可。
此时,如果以http 的方式访问接口,就会访问失败。
因为 Spring Boot 不支持同时在配置中启动 HTTP 和 HTTPS 。这个是皇后可以配置请求重定向。
配置方式如下:
监听 8080 端口,并将请求转发到 8081 上去。
(此配置还没来得及验证,之后再验)