Springboot 配置阿里云ssl证书并解决异常java.io.IOException: Invalid keystore format

下载证书

  • 在阿里云中找到SSL证书管理 找到自己的证书 点击下载
    在这里插入图片描述
  • 解压后有两个文件
    在这里插入图片描述

生成JKS文件

  • 找到你的JDK的bin目录
  • 进入命令操作界面
  • 运行keytool -importkeystore -srckeystore D:\2610092_dzlianhu.com.pfx -destkeystore xx.jks -srcstoretype PKCS12 -deststoretype JKS
    • -srckeystore:下载的证书中pfx的路径
    • -destkeystore: 需要生成的jks文件名
    • deststoretype : 生成的类型 用JKS即可
  • 运行之后,需要输入口令 输入3次 都输入下载的证书中的密码即可,还会生成一个别名
    在这里插入图片描述

集成到项目中

  • 把生成的JKS文件上传到项目中,放在resources文件夹下
  • yml中添加配置
server:
  port: 443
  ssl:
    key-store: classpath:xxx.jks
    key-store-password: //下载的证书中有一个密码
    key-store-type: JKS
    key-alias: alias
  • 启动文件中添加配置

	/**
	 * http重定向到https
	 * @return
	 */
	@Bean
	public TomcatServletWebServerFactory servletContainer() {
		TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
			@Override
			protected void postProcessContext(Context context) {
				SecurityConstraint constraint = new SecurityConstraint();
				constraint.setUserConstraint("CONFIDENTIAL");
				SecurityCollection collection = new SecurityCollection();
				collection.addPattern("/*");
				constraint.addCollection(collection);
				context.addConstraint(constraint);
			}
		};
		tomcat.addAdditionalTomcatConnectors(httpConnector());
		return tomcat;
	}

	@Bean
	public Connector httpConnector() {
		Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
		connector.setScheme("http");
		//Connector监听的http的端口号
		connector.setPort(8080);
		connector.setSecure(false);
		//监听到http的端口号后转向到的https的端口号
		connector.setRedirectPort(443);
		return connector;
	}

异常

java.io.IOException: Invalid keystore format
原因: maven-resources-plugin 在拷贝resources 文件时进行 encoding 会“误伤二进制文件”导致拷贝到classes下的文件发生了变化.
解决办法:在pom文件中添加插件(注意清理编译缓存)

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
        <nonFilteredFileExtensions>
            <!--这里是文件后缀-->
            <nonFilteredFileExtension>jks</nonFilteredFileExtension>
        </nonFilteredFileExtensions>
    </configuration>
</plugin>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值