springboot无法获取证书内容

最近项目里面在接第三方验证的时候,需要用到生成的公钥和私钥证书。在demo测试的时候,发现在resources里面直接建立一个key文件夹放入证书文件,然后使用文件方式去获取,大概代码如下:

File pfxfile = SpringContextUtils.getApplicationContext().getResource("classpath:key" + File.separatorChar + xinyanProperties.getPfxName()).getFile();

dubug下发现能够正常取到证书的内容,但是将项目打成jar包传输到服务器上之后,发现方法报错,在获取证书内容的时候,报null,也就是说正常的获取在服务器上失败了。


查找原因

把jar包反编译之后,发现jar包内的目录结构和springboot项目的目录结构全不一样:对比如下图:
springboot结构
jar包结构
对比发现里面已经没有了对应的文件路径,所以使用上面的方法是获取不到的,经过Google,发现了这种情况下,使用流的方式获取

InputStream stream = getClass().getClassLoader().getResourceAsStream("key" + File.separatorChar + xinyanProperties.getPfxName());

总结

getClass().getResource(fileName):表示只会在当前调用类所在的同一路径下查找该fileName文件; .getClass().getClassLoader().getResource(fileName):表示只会在根目录下(/)查找该文件;
`

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot中配置SSL证书以实现HTTPS访问有几个步骤。首先,你需要获取SSL证书文件。 然后,你可以按照以下步骤进行配置: 1. 将证书文件(通常是以.crt或.pfx为后缀的文件)复制到项目的资源目录下,比如src/main/resources。 2. 在项目的配置文件(通常是application.properties或application.yml)中添加以下配置: ``` server.port=443 server.ssl.key-store-type=PKCS12 server.ssl.key-store=classpath:your_certificate_file.pfx server.ssl.key-store-password=your_certificate_password ``` 其中,your_certificate_file.pfx是你复制的证书文件名,your_certificate_password是证书的密码。 3. 启动项目后,你可以通过HTTPS访问你的应用程序。你可以在浏览器中输入https://localhost 来尝试。 请确保在配置过程中提供正确的证书文件和密码,并将其与你的应用程序相匹配。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [springboot下配置SSL证书HTTPS访问](https://download.csdn.net/download/ningyunyuyi/10545683)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [使用SpringBoot配置https(SSL证书)](https://blog.csdn.net/yucaifu1989/article/details/124384022)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [SpringBoot配置SSL证书](https://blog.csdn.net/qq_40247570/article/details/122549072)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值