Springboot SSL证书重新导入没生效问题

文章讲述了在Java程序中,原本通过设置全局变量导入证书库(如cacerts)的方式需要重启才能生效,而改为使用自定义信任库和SSLContext可以实现实时生效。同时,提供了使用keytool命令导入和删除证书的步骤。
摘要由CSDN通过智能技术生成

程序原本使用配置全局变量方式导入证书库(使用的是jdk下默认证书库cacerts)

String javaHome = System.getProperty("java.home");
String keystore = Paths.get(javaHome, "/lib/security/cacerts").toString();
System.setProperty("javax.net.ssl.trustStore", keystore);
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");

这种方式重新导入证书文件需要重启程序才能生效。

后来发现改用自定义信任库可以实时生效,如下代码

String javaHome = System.getProperty("java.home");
String keystorePath = Paths.get(javaHome, "/lib/security/cacerts").toString();
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance("X509");
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
keystore.load(new FileInputStream(keystorePath), "changeit".toCharArray());
trustManagerFactory.init(keystore);
TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustManagers, null);
SSLContext.setDefault(sc);

附加证书文件重新导入证书库的命令:

//先移除已经导入的同名证书(首次导入则不需要)
keytool -delete -alias [证书别名] -keystore [证书库路径] -storepass [证书库密码]
//导入证书
keytool -importcert -noprompt -trustcacerts -alias [证书别名] -keystore [证书库路径] -storepass [证书库密码] -file [导入的证书路径]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用SpringBoot开发Web应用时,为确保数据传输的安全,需要通过证书对网站进行加密和验证。SSL证书可以认证服务器的身份,并通过加密机制,保证数据传输的私密性和完整性。SpringBoot支持使用自签名证书和第三方证书来实现SSL证书的配置。 配置自签名证书步骤如下: 1. 创建keystore文件:通过keytool命令生成一个用于存储SSL证书的keystore文件; 2. 配置ssl属性:在application.properties或application.yml中添加以下配置信息: server.port: 443 #HTTPS默认端口 server.ssl.key-store: classpath:ssl/keystore.p12 #证书存储路径 server.ssl.key-store-password: password #证书密码 server.ssl.key-store-type: PKCS12 #证书类型 server.ssl.key-alias: tomcat #证书别名 server.ssl.enabled=true #启用SSL 配置第三方证书步骤如下: 1. 申请证书:向第三方证书提供商购买SSL证书; 2. 导入证书:将证书导入到keystore文件中,可使用keytool命令导入; 3. 配置ssl属性:在application.properties或application.yml中添加以下配置信息: server.port: 443 #HTTPS默认端口 server.ssl.key-store: classpath:ssl/keystore.p12 #证书存储路径 server.ssl.key-store-password: password #证书密码 server.ssl.key-store-type: PKCS12 #证书类型 server.ssl.key-alias: tomcat #证书别名 server.ssl.enabled=true #启用SSL 在以上配置完成后,即可启动SpringBoot应用程序,并通过https://localhost:443进行访问,访问时可以看到浏览器中有加密锁标记,表示数据已经开始加密传输。同时,也可使用在线工具或postman等第三方工具进行测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值