欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決異常:Invalid?keystore?format,springboot配置ssl證書(shū)格式不合法問(wèn)題

 更新時(shí)間:2024年03月05日 10:10:01   作者:喵喵@香菜  
這篇文章主要介紹了解決異常:Invalid?keystore?format,springboot配置ssl證書(shū)格式不合法問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、異常:Invalid keystore format

spring boot下配置ssl,使用jks證書(shū),開(kāi)始的時(shí)候啟動(dòng)沒(méi)有問(wèn)題,打的第一個(gè)包也沒(méi)有問(wèn)題,但是后來(lái)不斷出現(xiàn)證書(shū)格式不合法的異常。

有的時(shí)候就算改了證書(shū)名稱(chēng),還是出如此錯(cuò)誤。

異常如下:

Caused by: java.lang.IllegalArgumentException: Invalid keystore format
    at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:99) ~[tomcat-embed-core-9.0.29.jar:9.0.29]
    at org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:71) ~[tomcat-embed-core-9.0.29.jar:9.0.29]
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:218) ~[tomcat-embed-core-9.0.29.jar:9.0.29]
    at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1142) ~[tomcat-embed-core-9.0.29.jar:9.0.29]
    at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1228) ~[tomcat-embed-core-9.0.29.jar:9.0.29]
    at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:586) ~[tomcat-embed-core-9.0.29.jar:9.0.29]
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1005) ~[tomcat-embed-core-9.0.29.jar:9.0.29]
    ... 14 common frames omitted
Caused by: java.io.IOException: Invalid keystore format
    at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:650) ~[na:1.8.0_20]
    at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:55) ~[na:1.8.0_20]
    at java.security.KeyStore.load(KeyStore.java:1433) ~[na:1.8.0_20]
    at org.apache.tomcat.util.security.KeyStoreUtil.load(KeyStoreUtil.java:69) ~[tomcat-embed-core-9.0.29.jar:9.0.29]
    at org.apache.tomcat.util.net.SSLUtilBase.getStore(SSLUtilBase.java:217) ~[tomcat-embed-core-9.0.29.jar:9.0.29]
    at org.apache.tomcat.util.net.SSLHostConfigCertificate.getCertificateKeystore(SSLHostConfigCertificate.java:206) ~[tomcat-embed-core-9.0.29.jar:9.0.29]
    at org.apache.tomcat.util.net.SSLUtilBase.getKeyManagers(SSLUtilBase.java:283) ~[tomcat-embed-core-9.0.29.jar:9.0.29]
    at org.apache.tomcat.util.net.SSLUtilBase.createSSLContext(SSLUtilBase.java:247) ~[tomcat-embed-core-9.0.29.jar:9.0.29]
    at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:97) ~[tomcat-embed-core-9.0.29.jar:9.0.29]
    ... 20 common frames omitted

二、出現(xiàn)問(wèn)題的原因

1、原因

會(huì)出現(xiàn)Invalid keystore format 不合法的證書(shū)秘鑰庫(kù)的主要原因是證書(shū)的內(nèi)容發(fā)生了變化,我們使用IDEA或者eclipse的時(shí)候自動(dòng)打開(kāi)證書(shū),保存的時(shí)候發(fā)生了變化,或者是使用Git從Windos提交文件的時(shí)候,讀文件以后發(fā)生了變化。

不過(guò)這兩個(gè)可能原因可能性不是很高,最后的一個(gè)重要原因就是使用maven編譯或者打包的時(shí)候,對(duì)文件的內(nèi)容進(jìn)行了修改(maven編譯的時(shí)候使用了占位符,替換的時(shí)候使文件發(fā)生了變化);

2、鑒別

如何鑒別SSL證書(shū)內(nèi)容是否發(fā)生了變化,主要是通過(guò)對(duì)面源文件的大小與編譯后的ssl證書(shū)文件的大小。

例如我的正常的SSL證書(shū)大小為5.4kb,編譯后的證書(shū)大小為8.6kb。

啟動(dòng)程序發(fā)現(xiàn)出現(xiàn)異常Invalid keystore format。

三、解決

方法一:不要?jiǎng)?/h3>

將SSL證書(shū)文件放到項(xiàng)目中以后,不要用編程工具等的嘗試打開(kāi)它,證書(shū)文件在IDEA中會(huì)有一個(gè)?符號(hào)顯示。

或者將文件刪除,重新拷貝一份新的文件過(guò)來(lái);(PS:個(gè)人經(jīng)過(guò)實(shí)操,沒(méi)用)

方法二:轉(zhuǎn)換文件格式

將證書(shū)文件格式轉(zhuǎn)換為其它的文件格式,可以通過(guò)keytool、openssl、或者是其它帶有轉(zhuǎn)換SSL證書(shū)的工具,將JKS后綴的證書(shū)轉(zhuǎn)換為PFX格式的(PS:個(gè)人覺(jué)得太麻煩,而且也沒(méi)必要)

方法三:禁用Maven動(dòng)靜態(tài)資源

在項(xiàng)目的POM文件中添加如下配置:

<build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

</project>

方法四:配置MAVEN過(guò)濾JKS等格式的文件

在項(xiàng)目的POM文件中添加如下插件配置:

 <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                    <nonFilteredFileExtensions>
                        <!--<nonFilteredFileExtension>p12</nonFilteredFileExtension>-->
                        <nonFilteredFileExtension>jks</nonFilteredFileExtension>
                    </nonFilteredFileExtensions>
                </configuration>
            </plugin>
        </plugins>

ps: jks使用小寫(xiě),如果大寫(xiě)的話(huà),package的時(shí)候會(huì)出現(xiàn)異常。

四、最后

上述問(wèn)題是使用JKS后綴格式的證書(shū)發(fā)現(xiàn)了有此問(wèn)題,使用pfx后綴的證書(shū)未發(fā)現(xiàn)有上述問(wèn)題

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java線(xiàn)程池prestartCoreThread prestartAllCoreThreads的預(yù)熱源碼解讀

    java線(xiàn)程池prestartCoreThread prestartAllCoreThreads的預(yù)熱源碼解讀

    這篇文章主要介紹了java線(xiàn)程池prestartCoreThread prestartAllCoreThreads的預(yù)熱源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • Spring Cloud工程搭建過(guò)程詳解

    Spring Cloud工程搭建過(guò)程詳解

    文章介紹了如何使用父子工程搭建SpringCloud項(xiàng)目,包括創(chuàng)建父工程和子項(xiàng)目,以及管理依賴(lài)版本,感興趣的朋友一起看看吧
    2025-02-02
  • Java的Tomcat和Servlet的運(yùn)行原理詳解

    Java的Tomcat和Servlet的運(yùn)行原理詳解

    這篇文章主要為大家詳細(xì)介紹了Java的Tomcat和Servlet,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • SpringMVC中ModelAndView用法小結(jié)

    SpringMVC中ModelAndView用法小結(jié)

    本文主要介紹了SpringMVC中ModelAndView用法小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-12-12
  • Java中批處理框架spring batch詳細(xì)介紹

    Java中批處理框架spring batch詳細(xì)介紹

    這篇文章主要介紹了Java中批處理框架spring batch詳細(xì)介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • mybatisplus中的xml對(duì)象參數(shù)傳遞問(wèn)題

    mybatisplus中的xml對(duì)象參數(shù)傳遞問(wèn)題

    這篇文章主要介紹了mybatisplus中的xml對(duì)象參數(shù)傳遞問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 解決resultMap映射數(shù)據(jù)錯(cuò)誤的問(wèn)題

    解決resultMap映射數(shù)據(jù)錯(cuò)誤的問(wèn)題

    這篇文章主要介紹了解決resultMap映射數(shù)據(jù)錯(cuò)誤的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 詳解Java中Collector接口的組成

    詳解Java中Collector接口的組成

    今天給大家?guī)?lái)的是關(guān)于Java基礎(chǔ)的相關(guān)知識(shí),文章圍繞著Collector接口的組成展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 基于Feign實(shí)現(xiàn)異步調(diào)用

    基于Feign實(shí)現(xiàn)異步調(diào)用

    近期,需要對(duì)之前的接口進(jìn)行優(yōu)化,縮短接口的響應(yīng)時(shí)間,但是springcloud中的feign是不支持傳遞異步化的回調(diào)結(jié)果的,因此有了以下的解決方案,記錄一下,需要的朋友可以參考下
    2021-05-05
  • java8 對(duì)象轉(zhuǎn)Map時(shí)重復(fù) key Duplicate key xxxx的解決

    java8 對(duì)象轉(zhuǎn)Map時(shí)重復(fù) key Duplicate key xxxx的解決

    這篇文章主要介紹了java8 對(duì)象轉(zhuǎn)Map時(shí)重復(fù) key Duplicate key xxxx的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評(píng)論