日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

tomcat------https單向認證和雙向認證

系統 2050 0

?一、https分為單向認證和雙向認證:

單向認證就是說,只有客戶端使用ssl時對服務器端的證書進行認證,也就是說,客戶端在請求建立之前,服務器端會向客戶端發送一個證書,一般情況下,這種證書都是由自己或企業自行發布的,所以在客戶端使用https時,會跳出“是否信任并繼續”,點擊信任則表示客戶端信任服務器端證書,才可以繼續交互。

雙向認證,就是服務器端和客戶端都對雙方的證書進行認證,這時除了單向認證外,還需要在服務器端的受信任證書列表中加入客戶端的證書,這樣服務器端才能信任客戶端的請求。

二、配置:

1.單向認證配置:

?(1)首先使用keytool生成服務端密鑰倉庫,命令:?keytool -genkey -keyalg RSA -alias tomcatsso -dname "CN=localhost" -keystore d:\tomcatsso.keystore -storepass changeit

   ? ?命令參數-genkey表示是要生成新的密鑰庫,keyalg表示使用的密鑰生成算法是RSA,alias表示別名,keystore表示生成的密鑰庫存儲在什么地方,文件格式可以自定義,-storepass是表示密鑰庫的密碼。

   該步驟生成了一個密鑰庫,該密鑰庫包含私鑰和公鑰等文件。 把它用于服務器端的證書庫,用于客戶端瀏覽器認證服務端。

(2)開啟tomcat對ssl的支持,具體方法是去掉 <Connector port="8443"...>這一段的注釋,并在本段的末尾加上keystoreFile="d:\tomcatsso.keystore" keystorePass="changeit"這兩個屬性,這兩個屬性會告訴tomcat去哪兒尋找服務器端密鑰庫。重啟tomcat,至此tomcat對https的修改完成。

?(3) 客戶端也要驗證服務器證書,因此,必須把服務器證書添加到瀏覽的“受信任的根證書頒發機構”。由于不能直接將keystore格式的證書庫導入,必須先把服務器證書導出為一個單獨的.cer或.crt文件,使用如下命令:?

? ? ? keytool -keystore d:\tomcatsso.keystore?-export -alias tomcat -file D:\home\tomcat.cer

  然后雙擊D:\home\tomcat.cer文件,選擇安裝到“受信任的根證書頒發機構”下面。

? ? ?如果沒有第三步,瀏覽器會跳出“是否信任并繼續”,點擊信任則表示客戶端信任服務器端證書,才可以繼續交互。 消除該項請使用OPenSSL申請一個正式的服務器證書,參考 http://blog.csdn.net/jasonhwang/article/details/2344768

?2.雙向認證配置:

?(1)?為客戶端(即IE或firefox)生成證書庫,以便讓服務器來驗證它。為了能將證書順利導入至IE和Firefox,證書庫格式應該是PKCS12,即生成證書的時候storetype是PKCS12。 因此,使用如下命令生成:

? ? ? ? keytool -genkey -v -alias client -keyalg RSA -storetype PKCS12 -keystore D:\home\client.keys?

? ? ? ?客戶端的CN可以是任意值。

(2)在客戶端安裝證書庫。注意:不能導入.cer或者.crt格式文件,因為它會把這些文件當做服務端的認證文件,單向認證自動安裝。

   ?打開IE->工具->內容->證書->個人->導入->選擇任意文件?D:\home\client.keys ->輸入密鑰。一定要存在個人區。可以參考《 http://www.linuxyw.com/a/WEBfuwu/20130530/516.html

(3)讓服務端信任客戶端證書,由于不能直接將PKCS12格式的證書庫導入,必須先把服務器證書導出為一個單獨的.cer或.crt文件,

? ? ? ? 導出的客戶端證書導入服務端受信任的證書庫,該命令表示服務器端信任該證書,命令:keytool -import -alias tomcatsso -file?D:\home\client.cer?-keystore?D:\home\client.trustkeys ,不必先建client.trustkeys庫;

? ? ? ? 或者導入默認的服務器端信任證書庫,命令:keytool -import -alias tomcatsso -file D:\home\client.cer?-keystore "%java_home%/jre/lib/security/cacerts" -storepass changeit

這里的java_home是tomcat使用的jdk的位置,"%java_home%/jre/lib/security/cacerts"的?cacerts是個無后綴文件,表示服務器認證客戶端時使用的根證書庫。?

?

參考文章:《keytool命令使用實例》? http://www.360doc.com/content/10/0121/10/633992_14065815.shtml

? ? ? ? ? ? ? ? 《使用key配置https》 ? ? http://www.blogjava.net/stevenjohn/archive/2012/08/22/385989.html

?

?

?

?

tomcat------https單向認證和雙向認證


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 吉安市| 红安县| 华亭县| 大姚县| 长宁区| 海丰县| 桃江县| 余江县| 临城县| 两当县| 监利县| 宿州市| 东阳市| 宽甸| 淮滨县| 广灵县| 镇平县| 托克托县| 达日县| 班玛县| 龙游县| 灌南县| 重庆市| 天镇县| 康保县| 班玛县| 平罗县| 威远县| 千阳县| 离岛区| 堆龙德庆县| 施秉县| 于田县| 南召县| 凌海市| 乌苏市| 彭州市| 溧水县| 乡城县| 理塘县| 怀柔区|