时间:2022-06-10 08:26:53 | 栏目:JAVA代码 | 点击:次
最近在做微信小程序,https是必须条件
SpringBoot2.x版本
对比一下这个小锁头是不是莫名有点好看?


嘤为很久以前就备案有域名,就直接申请了SSL证书,几分钟就下来了

复制到项目里面(注意路径)

ssl:
key-store: classpath:server.jks
key-store-password: 申请时设置的密码
keyStoreType: JKS

在启动类底下添加;(把指定的http8080端口重定向到https8888)
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createHTTPConnector());
return tomcat;
}
private Connector createHTTPConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
//同时启用http(8080)、https(8443)两个端口
connector.setScheme("http");
connector.setSecure(false);
connector.setPort(8080);
connector.setRedirectPort(443);
return connector;
}

ok
SpringBoot https改造
生成命令:keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650
(1)关键字解释:
alias:密钥别名
storetype:指定密钥仓库类型
keyalg:生证书的算法名称,RSA是一种非对称加密算法
keysize:证书大小
keystore:生成的证书文件的存储路径
validity:证书的有效期
(2)生成证书注意:
在输入证书生成命令之后,会提示输入:
也可以不拷贝到项目中,后面配置路径时配置密钥证书的绝对路径即可

增加如下配置项:

server.ssl.key-store=classpath:keystore.p12 (密钥文件路径,也可以配置绝对路径)server.ssl.key-store-password=aqjcpt (密钥生成时输入的密钥库口令)server.ssl.keyStoreType=PKCS12 (密钥类型,与密钥生成命令一致)server.ssl.keyAlias=tomcat (密钥别名,与密钥生成命令一致)