第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么可以在不提供密碼的情況下指向使用自定義密碼的信任庫?

為什么可以在不提供密碼的情況下指向使用自定義密碼的信任庫?

GCT1015 2023-12-30 16:15:59
我有一個非常簡單的場景:public class Main {    public static void main(String[] args) {        System.setProperty("javax.net.debug", "ssl");         System.setProperty("javax.net.ssl.trustStore", "H:/data/serverkeystore.jks");        System.setProperty("javax.net.ssl.trustStorePassword", "somestuff");        try {            ServerSocketFactory ssf = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();            SSLServerSocket serverSocket = (SSLServerSocket) ssf.createServerSocket(1337);    ... code goes on here ...我是否評論該行并不重要System.setProperty("javax.net.ssl.trustStorePassword", "somestuff");出或者如果我使用它。在這個問題的答案中,很好地描述了密碼的用途(即使那里缺少源信息),并且如果不給出密碼,則無法驗證 TrustStore 的完整性。因此,在我的示例代碼中,如果取消注釋該行,Java 將使用 TrustStore 而不檢查其完整性。通過我自己的測試,我可以確定如果我輸入錯誤的密碼并使用代碼(如上所示),則會出現(xiàn)錯誤消息(這是期望的結果)。我只是感到驚訝的是,可以省略密碼,然后 Java 顯然可以與未經(jīng)檢查的 TrustStore 一起使用。任何人都可以根據(jù)我的問題解釋 TrustStore 的初始化例程嗎?正如問題中已經(jīng)提到的,我使用自己的 TrustStore 密碼,該密碼與標準密碼“changeit”不同。
查看完整描述

1 回答

?
jeck貓

TA貢獻1909條經(jīng)驗 獲得超7個贊

它甚至取決于 SPI (JCE) 實現(xiàn),實際上您不需要任何密碼即可列出 JKS 存儲。

證書不是保密的,但您不希望任何人篡改系統(tǒng)應信任的證書列表(例如提供惡意/虛假根 CA)。

應該有一種方法來強制信任庫的信任(應該驗證密碼)。如果密碼錯誤的話會失敗嗎?

是的,它會失敗,如果您不提供密碼,則無法更新信任庫

事實上,這是預期的行為。對于 JKS 密鑰庫,您可以列出沒有任何密碼的條目和證書,但無法驗證完整性。無論如何,您應該在您的應用程序中提供密碼,以確保沒有人使用您的信任庫。


查看完整回答
反對 回復 2023-12-30
  • 1 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號