使用JDK1.8 开发工具包bin目录下的keytool.exe工具生成ssl密钥:
keytool -genkey -alias mykey -keyalg RSA -keysize 2048 -validity 365 -keystore mykeystore.p
- -genkey: 表示创建密钥。
- -alias: 保存时的别名。
- -keyalg:加密算法选择,这里使用RSA。
- -keystore:密钥的存放位置。
- -validity:有效时间,单位是天。
配置项
application.properties
server.port=8081
server.error.path=/log
server.servlet.session.timeout=30s
#设置应用程序的上下文路径为 /testc002。这意味着所有以 /testc002 开始的 URL 都将被认为属于这个应用程序。
server.servlet.context-path=/testc002
server.tomcat.uri-encoding=UTF-8
server.tomcat.max-threads=500
#表示 SSL 密钥存储库的名称为 safehttp.p。
server.sll.key-store=safehttp.p
#表示 SSL 密钥别名为 tomcathttpstest2。
server.sll.key-alias=tomcathttpstest2
#这行设置的是 SSL 密钥存储库的密码为 12345678
server.sll.key-store-password=12345678
pom.xml
4.0.0
org.example
spring_Ba服务器托管网ck
1.0-SNAPSHOT
org.springframework.boot
spring-boot-starter-parent
2.3.9.RELEASE
8
8
UTF-8
org.springframework.boot
spring-boot-starter-web
配置类
package org.example.config;
import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.RequestMapping;
import sun.security.util.SecurityConstants;
import java.sql.Connection;
@Configuration
public class TomcatConfig {
/**
* 设置 Tomcat 的Server配置
* @return
*/
@Bean
TomcatServletWebServerFactory tomcatServletWebServerFactory(){
TomcatServletWebServerFactory myFactory = new TomcatServletWebServerFactory(){
//创建一个安全约束对象
@Override
protected void postProcessContext(Context context) {
SecurityConstraint constraint = new SecurityConstraint();
constraint.setUserConstraint("CONFIDENTIAL");//设置为机密级别
SecurityCollection connection = new SecurityCollection();//设置一个安全连接对象
//作用到所有路由上
connection.addPattern("/*");
//加入 connection 对象到安全路由中去
constraint.addCollection(connection);
context.addConstraint(constraint);
}
};
myFactory.addAdditionalTomcatConnectors(createConnector());
return myFactory;
}
/**
* 创建一个连接兼容Https请求
* @return
*/
private Connector createConnector(){
//tomcat 9 中
//tomcat/conf/server.xml中不要使用org.apache.coyote.http11.Http11AprProtocol
//要用HTTP/1.1
Connector connector = new Connector("HTTP/1.1");
connector.setScheme("http");
connector.setPort(8080);
connector.setSecure(true);//关闭ssl检查
//设置跳转到8081 的端口
connector.setRedirectPort(8081);
return connector;
}
}
控制类
package org.example.controller;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class FirstController {
@GetMapping("/hey")
public String hey(){
return "hey main";
}
}
启动类
package org.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
@EnableAutoConfiguration
@ComponentScan
public class MyApp {
public static void main(String[] args) {
服务器托管网 SpringApplication.run(MyApp.class,args);
}
}
此时访问将只能使用 http 协议 以及通过8080端口跳转到 8081.
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net