借鉴各位大神的经验,测试了简单的实现https接口,遇到了2个坑;
一.使用jdk中keytool的证书管理工具,可以用它来实现签名的证书,创建一个文件夹,在文件夹下进行 cmd,并输入:
keytool -genkey -alias tomcat -keyalg RSA -keystore ./server.keystore
- genkey 表示要创建一个新的密钥库。
- alias 表示 keystore 的别名,后面配置文件中要用
- keyalg 表示使用的加密算法是 RSA ,一种非对称加密算法。
- keysize 表示密钥的长度。
- keystore 表示生成的密钥存放位置以及名称。
- storepass 表示密钥库的密码(获取keystore信息所需的密码)
- keypass 表示别名条目的密码(私钥的密码)
二、证书生成后,一般在路径C:\Users\Administrator\server.keystore,cmd执行时制定目录生成在指定目录中,将 文件 server.keystore 复制到 Springboot resources文件夹下,Idea会自动加载在项目中。
三、二.配置Springboot项目,application.yml中配置:
server:
port: 9006 (这个就是执行端口)
ssl:
key-store: server.keystore (这个是生成的文件名)
key-password: 123456 (密码)
key-store-type: JKS
key-alias: tomcat (别名,执行的cmd命令时起的别名)
四、在启动类中添加,在启动类(加了注解@SpringBootApplication的那个类)后面加
@Bean
public Connector connector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
// 捕获http请求,并将其重定向到443端口
connector.setScheme("http");
connector.setPort(8080);
connector.setSecure(false);
//访问时用的,和yml文件中的保持一致
connector.setRedirectPort(9006);
return connector;
}
在浏览器中输入:https://localhost:8092/operateBooks/query3
五、配置postman, 使用postman测试
配置证书:
没有配置成功,不知道怎么配置??????
运行不成功