在mina中實現TSL SSL雙向認證連線(2)

2021-08-30 10:37:08 字數 2100 閱讀 4580

上回書說到...書接上回,現在介紹第二種實現方式:server端和client端各自擁有自簽名的私有金鑰證書,並且互相交換公鑰,通過對方公鑰互相信認對方證書。

1.建立server端keystore檔案serverkeys.jks,包含乙個用於伺服器的證書 :

[quote]keytool -genkey -alias server -keysize 1024 -validity 3650 -keyalg rsa -dname "cn=sundoctor.com, ou=developer,o=techstar, l=beijing, s=beijing, c=ch" -keypass 123456 -storepass 123456 -keystore serverkeys.jks [/quote]

2.匯出服務端公鑰證書

[quote]keytool -export -alias server -keystore serverkeys.jks -file server.cer -storepass 123456[/quote]

3.建立client端keystore檔案clientkeys.jks,分別包含用於虛構的通訊者 alice 和 bob 的證書 :

[quote]keytool -genkey -alias alice -keysize 1024 -validity 3650 -keyalg rsa -dname "cn=aclie, ou=developer,o=techstar, l=beijing, s=beijing, c=ch" -keypass 123456 -storepass 123456 -keystore clientkeys.jks

keytool -genkey -alias bob -keysize 1024 -validity 3650 -keyalg rsa -dname "cn=bob, ou=developer,o=techstar, l=beijing, s=beijing, c=ch" -keypass 123456 -storepass 123456 -keystore clientkeys.jks[/quote]

4.匯出客戶端 alice和 bob公鑰證書

[quote]keytool -export -alias alice -keystore clientkeys.jks -file alice.cer -storepass 123456

keytool -export -alias bob -keystore clientkeys.jks -file bob.cer -storepass 123456[/quote]

5.建立服務端keystore檔案servertrust.jks並匯入客戶端 alice和 bob公鑰證書

[quote]keytool -import -alias alice -keystore servertrust.jks -file alice.cer -keypass 123456 -storepass 123456

keytool -import -alias bob -keystore servertrust.jks -file bob.cer -keypass 123456 -storepass 123456[/quote]

6.建立客戶端keystore檔案clientturst.jks並匯入服務端公鑰證書

[quote]keytool -import -alias server -keystore clienttrust.jks -file server.cer -keypass 123456 -storepass 123456[/quote]

這樣我們就得clientkeys.jks、clienttrust.jks、serverkeys.jks、servertrust.jks四個keystore檔案。

這裡與第一種方式不同的地方就是不再需要bogustrustmanage***ctory類,初始化客戶端和服務端的sslcontext時trustmanager分別採用 clienttrust.jks和servertrust.jks,keymanager和第一種方式一樣。

protected static trustmanager gettrustmanagers(string trustfile,string pasword) throws ioexception, generalsecurityexception

在mina中實現TSL SSL雙向認證連線( )

現在介紹第三種實現方式 server端和client端各自擁有可信認的第三方認證機構 簽名私有金鑰證書,通過 互相信認對方證書。在第二種實現方式中,使用keytool生成的數字證書只能是自簽名的。謂自簽名就是指證書只能保證自己是完整的,沒有經過非法修改的。但是無法保證這個證書是屬於誰的。這種驗證有乙...

C 雙鏈表練習,實現球在螢幕中滾動,排坑

include include include 定義乙個雙鏈表節點 struct node 定義list存放node指標 struct list 初始化雙鏈表節點 node init node int x,int y 初始化雙鏈表 list init list 節點的鏈結傳參,第乙個引數資料在前,第...

在 中實現 加密

在 中的專案中,新增引用 system.web 然後 str2 system.web.security.formsauthentication.hashpasswordforstoringinconfigfile str1,md5 就ok了,如果要換成 sha1 加密形式,只要把 md5 換成 md...