• Demo
    保持交易與客戶資料隱密性

    GoDaddy

    Keep payments & customer data private
  • Demo
    創造線上信任者!

    COMODO

    Creating Trust Online
  • Demo
    您的成功來自於信任!

    digicert

    Your Success is Built on Trust
  • Demo
    保護數位認證與信息安全!

    Entrust

    Securing digital Identities & Information
  • Demo
    數位憑證的領導品牌!

    GeoTrust

    a leading certificate authority
  • Demo
    安全地溝通和交易!

    GlobalSign

    Communicate and transact securely.
  • Demo
    保護您的網站!保護您的客戶們!

    Network Solutions

    Secure Your Site!Protect Your Customers
  • Demo
    瑞士軍刀的數位認證和PKI

    StartCom

    The Swiss Army Knife of Digital Certificates & PKI
  • Demo
    最高等級的安全與身分認證

    SwissSign

    Extreme Security & Identity
  • Demo
    一個全新等級的保護和信任

    Symantec

    protect and trust to a whole new level
  • Demo
    最明顯的網站安全性標誌

    Thawte

    The most visible sign of web site security
  • Demo
    最簡單方案滿足您安全性與法規的遵從

    trustwave

    to your complex security and compliance challenges
  • Demo
    低成本,高保證的SSL證書

    instantssl

    low cost high assurance ssl certificates
  • Demo
    官網負擔得起的SSL證書及信任標章

    trustico

    Official Supplier Of Affordable Website SSL Certificates & Trust Seals
  • Demo
    簡單的網站安全性

    rapidssl

    simple site security for less
  • Demo
    由SSL.com來建立客戶信任

    ssl.com

    simple site security for less
  • Demo
    我們知道需要什麼是安全的

    certs4less

    We know what it takes to be secure
  • Demo
    從世界上唯一的高級SSL服務

    thesslstore

    SSL Certificates from the Only Premium SSL Service in the World
  • Demo
    專業,認證,信任

    certcenter

    expert. proven. trusted
  • Demo
    網頁安全解決方案

    secure128

    web security solutions
  • Demo
    保護您的業務,高度信任的SSL證書

    sslcertificate

    secure your business,high trust ssl cert
  • Demo
    保護您客戶的資料

    Namecheap

    Protect your site visitors' data
  • Demo
    我們把信任標識化

    IdenTrust

    We Put The Trust In Identity

憑證工具使用篇(Java Keytool)

JAVA KeyTool是一個免費的憑證管理工具,使用於JAVA平台上,此工具可產生,匯出與匯入憑證,並且進行憑證相關的功能,了解此工具,可以讓您在操作憑證上,非常的便利,以下簡單說明一些操作的語法:

Keytool是一個Java資料證書的管理工具,Keytool將金鑰(key)和證書(certificates)存在一個稱為keystore的檔中 在keystore裡,包含兩種資料:

金鑰實體(Key entity):金鑰(secret key)又或者是私密金鑰(Private Key)和配對公開金鑰(採用非對稱加密)

可信任的證書實體(trusted certificate entries):只包含公開金鑰(Public Key)

ailas(別名)每個keystore都關聯這一個獨一無二的alias,這個alias通常不區分大小寫,且Keystore中可以有很多組的(金鑰+證書),每一組都有其保護的密碼

JDK中keytool常用指令:如下

  • -genkey

:在用戶主目錄中創建一個預設檔".keystore",還會產生一個mykey的別名,mykey中包含用戶的公開金鑰、私密金鑰和證書(在沒有指定生成位置的情況下,keystore會存在使用者系統預設目錄,如:對於windows系統,會生成在系統的C:\Documents and Settings\UserName\檔案名為“.keystore”)

  • -alias:產生別名
  • -keystore:指定金鑰庫的名稱(產生的各類資訊將不在.keystore文件中)
  • -keyalg:指定金鑰的演算法 (如 RSA  DSA(如果不指定默認採用DSA))
  • -validity:指定創建的證書有效期多少天
  • -keysize:指定金鑰長度
  • -storepass:指定金鑰庫的密碼(獲取keystore資訊所需的密碼)
  • -keypass:指定別名條目的密碼(私密金鑰的密碼)
  • -dname:指定證書擁有者資訊 例如:  "CN=名字與姓氏,OU=組織單位名稱,O=組織名稱,L=城市或區域名稱,ST=州或省份名稱,C=單位的兩字母國家代碼"
  • -list:顯示金鑰庫中的證書資訊      keytool -list -v -keystore 指定keystore -storepass 密碼
  • -v :顯示金鑰庫中的證書詳細資訊
  • -export:將別名指定的證書匯出到檔  keytool -export -alias 需要匯出的別名
  • -keystore:指定keystore -file 指定匯出的證書位置及證書名稱 -storepass 密碼
  • -file:參數指定匯出到檔的檔案名
  • -delete:刪除金鑰庫中某條目 keytool -delete -alias 指定需刪除的別名; -keystore 指定keystore;-storepass 指定密碼
  • -printcert:查看匯出的證書資訊          keytool -printcert -file yushan.crt
  • -keypasswd:修改金鑰庫中指定條目指令:keytool -keypasswd -alias 需修改的別名 -keypass 舊密碼 -new  新密碼  -storepass keystore密碼  -keystore sage
  • -storepasswd:修改keystore指令:keytool -storepasswd -keystore e:\polin.keystore(需修改口令的keystore) -storepass 123456(原始密碼) -new polinwei(新密碼)
  • -import:將已簽名數位憑證導入金鑰庫  keytool -import -alias 指定導入條目的別名 -keystore 指定keystore -file 需導入的證書

下面是各選項的預設值:

  • -alias "mykey"
  • -keyalg "DSA"
  • -keysize 1024
  • -validity 90
  • -keystore  為使用者主目錄中名為 .keystore 的文件
  • -file 讀入時為標準輸入,寫出時為標準輸出

以下是在command mode下,keytool的參數說明

-certreq 產生憑證要求
-changealias 變更項目的別名
-delete 刪除項目
-exportcert 匯出憑證
-genkeypair 產生金鑰組
-genseckey 產生秘密金鑰
-gencert 從憑證要求產生憑證
-importcert 匯入憑證或憑證鏈
-importkeystore 從其他金鑰儲存庫匯入一個或全部項目
-keypasswd 變更項目的金鑰密碼
-list 列示金鑰儲存庫中的項目
-printcert 列印憑證的內容
-printcertreq 列印憑證要求的內容
-printcrl 列印 CRL 檔案的內容
-storepasswd 變更金鑰儲存庫的儲存密碼

簡單的語法範例




1. keystore的產生:  
分階段產生: 
keytool -genkey -alias edi-prod(別名) -keypass password(別名密碼) -keyalg RSA(演算法) -keysize 1024(金鑰長度) -validity 365(有效期,天單位) -keystore ./edi.keystore(指定生成證書的位置和證書名稱) -storepass 123456(獲取keystore資訊的密碼)

一次性產生:
keytool -genkey -alias edi-prod -keypass password -keyalg RSA -keysize 1024 -validity 365 -keystore ./edi.keystore -storepass 123456 -dname "CN=(名字與姓氏), OU=(組織單位名稱), O=(組織名稱), L=(城市或區域名稱), ST=(州或省份名稱), C=(單位的兩字母國家代碼)";(中英文都可)

2.查看keystore裡的資訊:
keytool -list  -v -keystore ./edi.keystore -storepass 123456

Keystore 類型: JKS
Keystore 提供者: SUN

您的 keystore 包含 1 輸入

別名名稱: edi-prod
建立日期: 2013/2/6
項目類型:PrivateKeyEntry
認證鏈長度: 1
認證 [1]:
所有者:CN=mis, OU=mis, O=wei, L=Taipei, ST=Taipei, C=TW
核發者:CN=mis, OU=mis, O=wei, L=Taipei, ST=Taipei, C=TW
序號:51121b83
自以下日期開始生效:Wed Feb 06 16:59:47 CST 2013,直到:Thu Feb 06 16:59:47 CST 2014
憑證指紋:
        MD5:C7:EE:5A:17:C6:FF:0D:30:7C:6B:52:53:D7:29:B1:A6
        SHA1:35:D9:F0:07:5B:2D:9E:89:45:9A:4D:B8:8B:B9:7F:12:D1:36:3B:EC
        簽名演算法名稱:SHA1withRSA
        版本:3

3.產生要向第三方發證單位(如:CA)申請的檔案
keytool -certreq -alias edi-prod -file edi-certreq.txt -keystore ./edi.keystore -storepass 123456 -keypass password

edi-certreq.txt的檔案內容:
----BEGIN NEW CERTIFICATE REQUEST-----
MIIBmTCCAQICAQAwWTELMAkGA1UEBhMCVFcxDzANBgNVBAgTBlRhaXBlaTEPMA0GA1UEBxMGVGFp
cGVpMQwwCgYDVQQKEwN3ZWkxDDAKBgNVBAsTA21pczEMMAoGA1UEAxMDbWlzMIGfMA0GCSqGSIb3
DQEBAQUAA4GNADCBiQKBgQClzG0muVpAF+cMOG/PWobKY+vg8l6w6xOF0HgFA3S+3LFV+V79ezLF
Vz3e7L8HeOXM2vTtbm9OdMsbHog8zFUbawyeQ7jZOj74vsxT3RYfPMEFQmQyZYVN+Sd5X9GWX3SB
52l7I0e+1ZKRxC674e9YMGZATzfQIsciJ6vJ76IL3wIDAQABoAAwDQYJKoZIhvcNAQEFBQADgYEA
hz0J99+3Z0sp56lwxzbaVWnnmj1attPX5wQcaCg+NFdUuMcv2nHY/zWZD9p+EdNBBhgBaFqc8hnU
+qO002MBlzWONUPF4qGlTFP+tnZ+zgZAmkTyLEqiqkYmoD6FEYNmNpvW7aMVeNpL+PVpeJY8Dy4l
2z4hifw1fLqSuClIU0A=
-----END NEW CERTIFICATE REQUEST-----
 4.登入 Microsoft Active Directory Certificate Services 網站 http://localhost/certsrv 作申請

->Request a certificate
->advanced certificate request. 
->Submit a certificate request by using a base-64-encoded CMC or PKCS #10 file, or submit a renewal request by using a base-64-encoded PKCS #7 file.

選擇 Download certificate chain 將產生的憑證存成 edi-certnew.p7b

5.將edi-certnew.p7b 加入到edi.keystore中:

keytool -import -alias edi-prod(指定導入證書的別名,如果不指定,預設值為mykey,別名是唯一,沒指定對導入會出錯) -file edi-certnew.p7b -keystore ./edi.keystore -storepass 123456 -keypass password

並可查看keystore裡,應有新增一個憑證的資訊: 
keytool -list  -v -keystore ./edi.keystore -storepass 123456

文章轉載:http://polinwei.blogspot.tw/