亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

此代碼是否支持相互身份驗證,如果是,如何觸發它?

此代碼是否支持相互身份驗證,如果是,如何觸發它?

慕桂英3389331 2023-06-08 19:40:49
問題 1>所以我在服務器上使用了與客戶端信任庫相同的密鑰庫,這是由命令“?keytool -genkey -alias signFiles -keystore examplestore?”生成的。這里發生了什么 ???蛻舳巳绾螐脑撌纠龓欤ǚ掌鞯拿荑€庫但客戶端的信任庫)文件中選擇受信任的 CA,或者更恰當地說,密鑰庫如何充當信任庫以及該文件究竟由什么組成?所以我所知道的是,密鑰庫具有公鑰和私鑰對以及證書。對于當前情況,它尚未由 CA 簽署證書。問題 2>因此,我們需要創建該 .crt 文件并由 CA 對其進行簽名,然后再次將其嵌入到 keyStore 中。嵌入crt文件就是導入.這樣理解對嗎?自簽名證書是什么意思?命令“?keytool -genkey -alias signFiles -keystore examplestore?”是否創建自簽名證書?我還嘗試為客戶端附加密鑰庫,為服務器附加信任庫,它在運行相應代碼時在參數中引用由命令“?keytool -genkey -alias signFiles1 -keystore exampstore1?”生成的相同文件。代碼成功運行。我還嘗試使用參數,例如將服務器的信任庫更改為不驗證客戶端密鑰庫的內容。但代碼仍然有效。但是當我嘗試更改不驗證服務器密鑰庫的客戶端的信任庫時,代碼拋出以下異常“javax.net.ssl.SSLHandshakeException:收到致命警報:certificate_unknown”。主要問題:問題 3> 這是否意味著它不觸發相互認證,如果是,如何使其觸發?它首先支持相互身份驗證嗎?
查看完整描述

1 回答

?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

首先,我們要明確幾點:

  • 文件JKS由條目組成,其中每個條目是 aPrivateKeyEntrytrustedCertEntry.?(對稱密鑰還有其他類型,是的,但是在討論公鑰密碼學時讓我們忘記它們。)

  • 當您運行時genkey,您將生成一個私鑰條目。如您所料,它包含私鑰和公鑰。

  • 您可以僅從私鑰條目中導出公鑰,然后將其導入另一個JKS,這一次證明是受信任的證書條目,因為它只包含公鑰。

  • 每個生成的證書最初都是自簽名的。僅當使用另一個私鑰條目(CA 的)對其進行簽名時,它才不是自簽名的。受信任的證書條目可以是自簽名的或 CA 簽名的。根 CA 證書始終是自簽名的。

  • 使用JKSas truststore 意味著您信任其中的條目,無論它們是自簽名的還是 CA 簽名的。您可以創建自己的 CA,將其公鑰導入文件JKS并將其用作您的信任庫。這意味著您只信任由您的 CA 簽署(直接或間接)的證書。(間接意味著有中間證書由您的 CA 簽名并再次用于簽署其他證書。)

現在回答你的問題,

Q1

如上所述,使用密鑰庫作為信任庫意味著“信任其中的條目”,因此它可以工作。無需由另一方(即 CA)簽署。

Q2

“嵌入crt文件就是導入.這樣理解對嗎?”

是的。

“命令‘keytool -genkey -alias signFiles -keystore examplestore’是否創建自簽名證書?”

是的。

關于使用不同密鑰庫和信任庫配置的試驗:在典型SSL設置中,只有服務器具有私鑰并出示其證書。只有客戶端驗證服務器,反之亦然。如果服務器被配置為要求證書(這是可能的),那么您在瀏覽網站時必須選擇您的私鑰https。驗證客戶的情況很少見。這就是為什么向客戶端提供密鑰庫和向服務器提供信任庫都沒有效果的原因。僅當您向客戶端提供無效的信任庫時,它才會失敗。


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

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號