最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決異常:Invalid?keystore?format,springboot配置ssl證書格式不合法問題

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

一、異常:Invalid keystore format

spring boot下配置ssl,使用jks證書,開始的時候啟動沒有問題,打的第一個包也沒有問題,但是后來不斷出現(xiàn)證書格式不合法的異常。

有的時候就算改了證書名稱,還是出如此錯誤。

異常如下:

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)問題的原因

1、原因

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

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

2、鑒別

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

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

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

三、解決

方法一:不要動

將SSL證書文件放到項目中以后,不要用編程工具等的嘗試打開它,證書文件在IDEA中會有一個?符號顯示。

或者將文件刪除,重新拷貝一份新的文件過來;(PS:個人經(jīng)過實操,沒用)

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

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

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

在項目的POM文件中添加如下配置:

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

</project>

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

在項目的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使用小寫,如果大寫的話,package的時候會出現(xiàn)異常。

四、最后

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

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

相關(guān)文章

  • Java Hibernate中的多種查詢方式及示例

    Java Hibernate中的多種查詢方式及示例

    Hibernate提供了多種查詢方式,包括HQL查詢、SQL查詢、QBC查詢和Criteria查詢等。HQL查詢是基于面向?qū)ο蟮牟樵冋Z言,可以方便地進(jìn)行對象導(dǎo)航和多表查詢;SQL查詢允許用戶直接使用SQL語句進(jìn)行查詢;QBC查詢是基于Criteria的查詢,具有類型安全和可重用性的優(yōu)勢
    2023-04-04
  • springmvc中進(jìn)行數(shù)據(jù)保存以及日期參數(shù)的保存過程解析

    springmvc中進(jìn)行數(shù)據(jù)保存以及日期參數(shù)的保存過程解析

    這篇文章主要介紹了springmvc中進(jìn)行數(shù)據(jù)保存以及日期參數(shù)的保存過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • 詳解SpringBoot Mybatis如何對接多數(shù)據(jù)源

    詳解SpringBoot Mybatis如何對接多數(shù)據(jù)源

    這篇文章主要為大家介紹了SpringBoot Mybatis如何對接多數(shù)據(jù)源實現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Java鎖機(jī)制完整學(xué)習(xí)筆記(附詳細(xì)代碼)

    Java鎖機(jī)制完整學(xué)習(xí)筆記(附詳細(xì)代碼)

    Java中的鎖機(jī)制是并發(fā)編程的核心工具之一,通過合理使用鎖、、讀寫鎖和自旋鎖,開發(fā)者可以確保多線程環(huán)境下的數(shù)據(jù)一致性和程序正確性,這篇文章主要介紹了Java鎖機(jī)制完整學(xué)習(xí)的相關(guān)資料,需要的朋友可以參考下
    2025-12-12
  • 解決java.util.NoSuchElementException異常正確方法

    解決java.util.NoSuchElementException異常正確方法

    java.util.NoSuchElementException是Java中的一種異常,表示在迭代器或枚舉中找不到元素,這篇文章主要給大家介紹了關(guān)于解決java.util.NoSuchElementException異常的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • Java實現(xiàn)圖片百葉窗效果(附源碼)

    Java實現(xiàn)圖片百葉窗效果(附源碼)

    在數(shù)字圖像處理領(lǐng)域,各種特效的實現(xiàn)不僅能夠提升圖片的美觀性,也能為后續(xù)的視頻合成、動畫制作提供基礎(chǔ)素材,使用 Java 語言結(jié)合 AWT/Swing 或 JavaFX,可以實現(xiàn)對圖像的像素級操作,以達(dá)到百葉窗特效,本文給大家介紹的非常詳細(xì),感興趣的小伙伴跟著小編一起來看看吧
    2025-05-05
  • SpringBoot中必須掌握的常用注解小結(jié)

    SpringBoot中必須掌握的常用注解小結(jié)

    Spring?Boot?提供了大量的注解,用于簡化配置和加速程序開發(fā),這篇文章主要來和大家Spring?Boot中的常用注解的具體使用,希望對大家有所幫助
    2024-11-11
  • 把Java程序轉(zhuǎn)換成exe,可直接運(yùn)行的實現(xiàn)

    把Java程序轉(zhuǎn)換成exe,可直接運(yùn)行的實現(xiàn)

    這篇文章主要介紹了把Java程序轉(zhuǎn)換成exe,可直接運(yùn)行的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Java split 分隔空值無法得到的解決方式

    Java split 分隔空值無法得到的解決方式

    這篇文章主要介紹了Java split 分隔空值無法得到的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Java String的intern方法使用場景示例

    Java String的intern方法使用場景示例

    這篇文章主要介紹了Java String的intern方法使用場景示例,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-11-11

最新評論

衡南县| 南丹县| 陈巴尔虎旗| 剑川县| 黎川县| 绥中县| 临漳县| 富宁县| 青川县| 新宁县| 改则县| 原平市| 康保县| 马鞍山市| 砚山县| 萨迦县| 定日县| 霍城县| 当雄县| 大田县| 东阿县| 内丘县| 临颍县| 黄山市| 隆化县| 仙游县| 城固县| 莱芜市| 博罗县| 伊宁县| 宁陵县| 神农架林区| 潞城市| 江口县| 凤庆县| 工布江达县| 晋江市| 盖州市| 林西县| 来凤县| 平邑县|