<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Calvin's Tech Space

    成于堅忍,毀于浮躁

       :: 首頁 :: 聯系 :: 聚合  :: 管理

    Java 自帶的 keytool 工具 是個密鑰和證書管理工具。它使用戶能夠管理自己的公鑰 / 私鑰對及相關證書,用于(通過數字簽名)自我認證(用戶向別的用戶 / 服務認證自己)或數據完整性以及認證服務。它還允許用戶儲存他們的通信對等者的公鑰(以證書形式)。

    keytool 將密鑰和證書儲存在一個所謂的 密鑰倉庫( keystore 中。缺省的密鑰倉庫實現將密鑰倉庫實現為一個文件。它用口令來保護私鑰。

    Java KeyStore 的類型

    JKS JCEKS Java 密鑰庫 (KeyStore) 的兩種比較常見類型 ( 我所知道的共有 5 種, JKS, JCEKS, PKCS12, BKS , UBER) 。

    JKS Provider SUN ,在每個版本的 JDK 中都有, JCEKS Provider SUNJCE , 1.4 后我們都能夠直接使用它。

    JCEKS 在安全級別上要比 JKS 強,使用的 Provider JCEKS( 推薦 ) ,尤其在保護 KeyStore 中的私鑰上(使用 TripleDes )。

    PKCS#12 是公鑰加密標準,它規定了可包含所有私鑰、公鑰和證書。其以二進制格式存儲,也稱為 PFX 文件,在 windows 中可以直接導入到密鑰區,注意, PKCS#12 的密鑰庫保護密碼同時也用于保護 Key 。

    BKS 來自 BouncyCastle Provider ,它使用的也是 TripleDES 來保護密鑰庫中的 Key ,它能夠防止證書庫被不小心修改( Keystore keyentry 改掉 1 bit 都會產生錯誤), BKS 能夠跟 JKS 互操作,讀者可以用 Keytool TryTry 。

    UBER 比較特別,當密碼是通過命令行提供的時候,它只能跟 keytool 交互。整個 keystore 是通過 PBE/SHA1/Twofish 加密,因此 keystore 能夠防止被誤改、察看以及校驗。以前, Sun JDK( 提供者為 SUN) 允許你在不提供密碼的情況下直接加載一個 Keystore ,類似 cacerts UBER 不允許這種情況。

    ?

    證書導入

    Der/Cer證書導入:

    要從某個文件中導入某個證書,使用keytool工具的-import命令:

    keytool -import -file mycert.der -keystore mykeystore.jks

    如果在 -keystore選項中指定了一個并不存在的密鑰倉庫,則該密鑰倉庫將被創建。

    如果不指定 -keystore選項,則缺省密鑰倉庫將是宿主目錄中名為 .keystore的文件。如果該文件并不存在,則它將被創建。

    創建密鑰倉庫時會要求輸入訪問口令,以后需要使用此口令來訪問??墒褂?/span>-list命令來查看密鑰倉庫里的內容:

    keytool -list -rfc -keystore mykeystore.jks


    P12格式證書導入:

    keytool無法直接導入PKCS12文件。

    第一種方法是使用IEpfx證書導入,再導出為cert格式文件。使用上面介紹的方法將其導入到密鑰倉庫中。這樣的話倉庫里面只包含了證書信息,沒有私鑰內容。

    第二種方法是將pfx文件導入到IE瀏覽器中,再導出為pfx文件。
    ?????? 新生成的
    pfx不能被導入到keystore中,報錯:keytool錯誤: java.lang.Exception: 所輸入的不是一個 X.509 認證。新生成的pfx文件可以被當作keystore使用。但會報個錯誤as unknown attr1.3.6.1.4.1.311.17.1,查了下資料,IE導出的就會這樣,使用Netscape就不會有這個錯誤.

    三種方法是將pfx文件當作一個keystore使用。但是通過微軟的證書管理控制臺生成的pfx文件不能直接使用。keytool不認此格式,報keytool錯誤: java.io.IOException: failed to decrypt safe contents entry。需要通過OpenSSL轉換一下:

    1openssl pkcs12 -in mycerts.pfx -out mycerts.pem

    2openssl pkcs12 -export -in mycerts.pem -out mykeystore.p12

    通過keytool-list命令可檢查下密鑰倉庫中的內容:

    keytool -rfc -list -keystore mykeystore.p12 -storetype pkcs12

    這里需要指明倉庫類型為pkcs12,因為缺省的類型為jks。這樣此密鑰倉庫就即包含證書信息也包含私鑰信息。

    P7B格式證書導入:

    keytool無法直接導入p7b文件。

    需要將證書鏈RootServer.p7b(包含根證書)導出為rootca.cer和子rootcaserver.cer 。

    將這兩個證書導入到可信任的密鑰倉庫中。

    keytool -import -alias rootca -trustcacerts -file rootca.cer -keystore testkeytrust.jks

    遇到是否信任該證書提示時,輸入y

    keytool -import -alias rootcaserver -trustcacerts -file rootcaserver.cer -keystore testkeytrust.jks


    總結:

    1)P12格式的證書是不能使用keytool工具導入到keystore中的

    2)The Sun's PKCS12 Keystore對從IE和其他的windows程序生成的pfx格式的證書支持不太好.

    3)P7B證書鏈不能直接導入到keystore,需要將里面的證書導出成cer格式,再分別導入到keystore。

    http://blog.csdn.net/peterwanghao/article/details/1761728


    posted on 2012-02-03 10:06 calvin 閱讀(10241) 評論(0)  編輯  收藏 所屬分類: Android安全
    主站蜘蛛池模板: 亚洲一区二区影视| 4480yy私人影院亚洲| 亚洲自偷自偷在线成人网站传媒| 日韩在线永久免费播放| 久久精品国产精品亚洲精品 | 亚洲午夜久久久久妓女影院| 成人免费网站视频www| 亚洲欧洲一区二区三区| 天堂亚洲免费视频| 亚洲综合色在线观看亚洲| 国产男女爽爽爽免费视频| 狠狠色伊人亚洲综合成人| 久久国产精品免费网站| 亚洲不卡1卡2卡三卡2021麻豆| 国产1024精品视频专区免费 | 亚洲午夜久久久精品电影院| 99爱免费观看视频在线| 亚洲午夜国产精品| 国产成人免费全部网站| 特级做a爰片毛片免费看| 亚洲AV无码第一区二区三区| 99久久免费看国产精品| 亚洲制服丝袜第一页| 国产福利免费观看| 西西人体免费视频| 亚洲制服丝袜在线播放| 日韩午夜免费视频| 免费91最新地址永久入口| 亚洲乱码中文论理电影| 亚洲AⅤ无码一区二区三区在线| 国产区在线免费观看| 亚洲国产精品张柏芝在线观看 | 国产aⅴ无码专区亚洲av麻豆| 99久9在线|免费| 鲁死你资源站亚洲av| 亚洲人成人一区二区三区| 成人免费毛片内射美女-百度| 特黄aa级毛片免费视频播放| 亚洲国产精品一区二区第一页| 国产一卡2卡3卡4卡2021免费观看| WWW亚洲色大成网络.COM |