通過keytool生成證書,並提取公鑰和私鑰


1、生成證書

keytool -genkeypair -alias abc -keyalg RSA -keypass abc -keystore abc.jks -storepass abc -validity 3650

 

keytool -genkeypair -alias home -storetype PKCS12  -keyalg RSA -keystore home.pkcs12 -storepass 13987664391 -validity 3650 -keysize 2048 

 

 

keytool命令

keytool密鑰和證書管理工具

命令:

 -certreq            生成證書請求
 -changealias        更改條目的別名
 -delete             刪除條目
 -exportcert         導出證書
 -genkeypair         生成密鑰對
 -genseckey          生成密鑰
 -gencert            根據證書請求生成證書
 -importcert         導入證書或證書鏈
 -importpass         導入口令
 -importkeystore     從其他密鑰庫導入一個或所有條目
 -keypasswd          更改條目的密鑰口令
 -list               列出密鑰庫中的條目
 -printcert          打印證書內容
 -printcertreq       打印證書請求的內容
 -printcrl           打印 CRL 文件的內容
 -storepasswd        更改密鑰庫的存儲口令

使用 "keytool -command_name -help" 獲取 command_name 的用法

keytool -genkeypair [OPTION]...

生成密鑰對

選項:

 -alias <alias>                  要處理的條目的別名
 -keyalg <keyalg>                密鑰算法名稱
 -keysize <keysize>              密鑰位大小
 -sigalg <sigalg>                簽名算法名稱
 -destalias <destalias>          目標別名
 -dname <dname>                  唯一判別名
 -startdate <startdate>          證書有效期開始日期/時間
 -ext <value>                    X.509 擴展
 -validity <valDays>             有效天數
 -keypass <arg>                  密鑰口令
 -keystore <keystore>            密鑰庫名稱
 -storepass <arg>                密鑰庫口令
 -storetype <storetype>          密鑰庫類型
 -providername <providername>    提供方名稱
 -providerclass <providerclass>  提供方類名
 -providerarg <arg>              提供方參數
 -providerpath <pathlist>        提供方類路徑
 -v                              詳細輸出
 -protected                      通過受保護的機制的口令

使用 "keytool -help" 獲取所有可用命令

2、提取公鑰

2.1 用keytool只能提取cert格式的公鑰

keytool -list -rfc -keystore abc.jks -storepass abc

顯示如下:

密鑰庫類型: jks
密鑰庫提供方: SUN

您的密鑰庫包含 1 個條目

別名: abc
創建日期: 2019-5-18
條目類型: PrivateKeyEntry
證書鏈長度: 1
證書[1]:
-----BEGIN CERTIFICATE-----
MIIDXzCCAkegAwIBAgIEQkT0ojANBgkqhkiG9w0BAQsFADBgMQswCQYDVQQGEwJj
bjELMAkGA1UECBMCZ2QxCzAJBgNVBAcTAnN6MREwDwYDVQQKEwhjaGFuZ2dvdTER
MA8GA1UECxMIY2hhbmdnb3UxETAPBgNVBAMTCGNoYW5nZ291MB4XDTE5MDUxNzIw
MDMyNFoXDTE5MDgxNTIwMDMyNFowYDELMAkGA1UEBhMCY24xCzAJBgNVBAgTAmdk
MQswCQYDVQQHEwJzejERMA8GA1UEChMIY2hhbmdnb3UxETAPBgNVBAsTCGNoYW5n
Z291MREwDwYDVQQDEwhjaGFuZ2dvdTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
AQoCggEBALxbBImi74o/QtTM/qMgJreO8IQGkZEbv/JHjzPl/O+tFBlNETMBrYum
fcty0NEbyuiNG615mxgf0bDd/D1Z4XD/GX8RlB9upF9ESvrZa8XKxvh5D2Dh+Fzw
C/ENZbtZ/cd7S3CD8avGWbbiMimBJqCysjLL074huX5U6Q6a09ubp1oBOJndZLYU
Vlzp31hwE1WO2P6+KG4ji9ZkuWxGv4jSqLUDZ7yACrYwTOEZSA1jGunZs/pR7S7a
gw9ixdasKIkiByO+S0GfwjWGhwn2UsbTsnaTSqvHm9fzxoizaJQ+C2ts39P9XZXK
+ZpHrFee9DcUZlNbRZvGXdzGZWZsr/UCAwEAAaMhMB8wHQYDVR0OBBYEFDlS24hM
6d3CpJUW4QNA91iPVq+TMA0GCSqGSIb3DQEBCwUAA4IBAQByLqfGerXnoxT4roBo
8/PY7+Ir1lQfpQWSYWIDcY7+ek5c7AGqGOk5dVG4GxdgsCdCmNM9VlcS7r2jlmD1
tO4g2MABbYWKkaVunSdYm73KhF4ktz+QPrBnUKisZnE6wciPl+MBe6J61uJR47Sx
Gd/bbqwr7JjfpvepAux3NVNaL6YN8K4M4Zwapu+GTiwNyoBXk6bTPp4fdgWKpW6X
i+DX64vC0WVqiQSRMSIZ+1RzPBRjaOXQklJuFbYIbnez9eVd1I264ziUIUvBQfE8
bqZrk/bvyt5lPnmpZJBthiEe/C3mMmsLwsUTN7jsIldtJaZ1lffmqar3bqxTxRdc
w60x
-----END CERTIFICATE-----

2.2 通過openssl可以提取PUBLIC KEY格式,windows下需要安裝 openssl:http://slproweb.com/products/Win32OpenSSL.html

通過通道符號把cert格式轉成public key格式
keytool -list -rfc --keystore wood.jks | openssl x509 -inform pem -pubkey

輸出顯示:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvFsEiaLvij9C1Mz+oyAm
t47whAaRkRu/8kePM+X8760UGU0RMwGti6Z9y3LQ0RvK6I0brXmbGB/RsN38PVnh
cP8ZfxGUH26kX0RK+tlrxcrG+HkPYOH4XPAL8Q1lu1n9x3tLcIPxq8ZZtuIyKYEm
oLKyMsvTviG5flTpDprT25unWgE4md1kthRWXOnfWHATVY7Y/r4obiOL1mS5bEa/
iNKotQNnvIAKtjBM4RlIDWMa6dmz+lHtLtqDD2LF1qwoiSIHI75LQZ/CNYaHCfZS
xtOydpNKq8eb1/PGiLNolD4La2zf0/1dlcr5mkesV570NxRmU1tFm8Zd3MZlZmyv
9QIDAQAB
-----END PUBLIC KEY-----
-----BEGIN CERTIFICATE-----
MIIDXzCCAkegAwIBAgIEQkT0ojANBgkqhkiG9w0BAQsFADBgMQswCQYDVQQGEwJj
bjELMAkGA1UECBMCZ2QxCzAJBgNVBAcTAnN6MREwDwYDVQQKEwhjaGFuZ2dvdTER
MA8GA1UECxMIY2hhbmdnb3UxETAPBgNVBAMTCGNoYW5nZ291MB4XDTE5MDUxNzIw
MDMyNFoXDTE5MDgxNTIwMDMyNFowYDELMAkGA1UEBhMCY24xCzAJBgNVBAgTAmdk
MQswCQYDVQQHEwJzejERMA8GA1UEChMIY2hhbmdnb3UxETAPBgNVBAsTCGNoYW5n
Z291MREwDwYDVQQDEwhjaGFuZ2dvdTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
AQoCggEBALxbBImi74o/QtTM/qMgJreO8IQGkZEbv/JHjzPl/O+tFBlNETMBrYum
fcty0NEbyuiNG615mxgf0bDd/D1Z4XD/GX8RlB9upF9ESvrZa8XKxvh5D2Dh+Fzw
C/ENZbtZ/cd7S3CD8avGWbbiMimBJqCysjLL074huX5U6Q6a09ubp1oBOJndZLYU
Vlzp31hwE1WO2P6+KG4ji9ZkuWxGv4jSqLUDZ7yACrYwTOEZSA1jGunZs/pR7S7a
gw9ixdasKIkiByO+S0GfwjWGhwn2UsbTsnaTSqvHm9fzxoizaJQ+C2ts39P9XZXK
+ZpHrFee9DcUZlNbRZvGXdzGZWZsr/UCAwEAAaMhMB8wHQYDVR0OBBYEFDlS24hM
6d3CpJUW4QNA91iPVq+TMA0GCSqGSIb3DQEBCwUAA4IBAQByLqfGerXnoxT4roBo
8/PY7+Ir1lQfpQWSYWIDcY7+ek5c7AGqGOk5dVG4GxdgsCdCmNM9VlcS7r2jlmD1
tO4g2MABbYWKkaVunSdYm73KhF4ktz+QPrBnUKisZnE6wciPl+MBe6J61uJR47Sx
Gd/bbqwr7JjfpvepAux3NVNaL6YN8K4M4Zwapu+GTiwNyoBXk6bTPp4fdgWKpW6X
i+DX64vC0WVqiQSRMSIZ+1RzPBRjaOXQklJuFbYIbnez9eVd1I264ziUIUvBQfE8
bqZrk/bvyt5lPnmpZJBthiEe/C3mMmsLwsUTN7jsIldtJaZ1lffmqar3bqxTxRdc
w60x
-----END CERTIFICATE-----

3、提取私鑰

3.1 需要把證書先轉成pfx格式

keytool -v -importkeystore -srckeystore abc.jks -srcstoretype jks -srcstorepass abc -destkeystore abc.pfx -deststoretype pkcs12 -deststorepass abc -destkeypass abc

3.2 提取私鑰

顯示在屏幕上
openssl pkcs12 -in abc.pfx -nocerts -nodes

輸出到文件
openssl pkcs12 -in abc.pfx -nocerts -nodes -out abc.key

 

顯示:

-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC8WwSJou+KP0LU
zP6jICa3jvCEBpGRG7/yR48z5fzvrRQZTREzAa2Lpn3LctDRG8rojRuteZsYH9Gw
3fw9WeFw/xl/EZQfbqRfREr62WvFysb4eQ9g4fhc8AvxDWW7Wf3He0twg/Grxlm2
4jIpgSagsrIyy9O+Ibl+VOkOmtPbm6daATiZ3WS2FFZc6d9YcBNVjtj+vihuI4vW
ZLlsRr+I0qi1A2e8gAq2MEzhGUgNYxrp2bP6Ue0u2oMPYsXWrCiJIgcjvktBn8I1
hocJ9lLG07J2k0qrx5vX88aIs2iUPgtrbN/T/V2VyvmaR6xXnvQ3FGZTW0Wbxl3c
xmVmbK/1AgMBAAECggEAUsH+9WZ0rx5qg8tqGkxXFpGkVa35KXOy24XbgqcLglde
nFtDMlELam+Fl+1jmG0IszLEtWzX2zqnzHlMibxDFH3ROwaDOWhIql78Pslm0+nr
kGLIgf3nPRZveMM1LqM0oQAoPlCKz7l/054BAkFvsm2xZCYwa7qvoLU4DSWz7int
xpjJcgS+dxXUbSm8o8vPnT/cdg8HGPmMj+z4+evR1058M93m/VZ4vrHZsQiCnfb0
tU0FDGQwCeSdDhgbVsEZ0HkNrNQwVZ6UpJSwlY14a2wMdp4ITM7db0t29H+flrne
sjHK1/Cprz5BwIimJv2uQkkBCnyjrWi4JX0REM/lAQKBgQDiwQbpRDgkssJFjps3
ycCpYcCCKINd6DRHREnc7semepcZq0Q2hWqh9Ba031NapWFla2y7bi2G4XcIgC+u
U23bVaALjxjnuPgg9Jb6lROhhxHmQayG2cSdpSNvdEppKkNfMnteTlBu7a8xpayq
YHoScSbjxquB5Du9++aV8diWwQKBgQDUpiX8+/UHSyTMxr+5i/8M/A1W4cqwtJFu
9wiDJrW7UFI71FLEDCOEgPaf0FKhZdLMC+2fCO9h1Gbbie9cVbGa/MVBXNnU/sYa
nZIymUzctx/r9RTc0BJ1zNCWPNj7FxJjf4Uqs1mdTRkB3p/x1RzsOoYBMHybhdu1
j3HknZ36NQKBgDHiqXSUL43TTe4ji35ggmRBPyrjYtM8DJRJL77NQVscyTU6eo1M
GMN8gapVH29nxt+bHJa3jIiJ/bf/C35cmGSSl90zJBWGmgAWD0kdlu4IWyW++QfJ
zPmppPwWJ3CvfZbp8j4zGHrvC4Xunuf0xaZdAmNGB+FRptsLGhWO2UmBAoGAO8zV
lgVM7NYm7SdfN1C1UvN21N3+YB8HXws9a5RxOtHlrkmRVOyM+HBD6sFs21KFKziX
hEfA+eP/YPGzTGYU4h7/Ydg4sftLvqRdPrl5sgAVjAeJ7GbfKh2E8xr9ce8VDsIH
svBo3SGXTL1MgXeLAKucj60Q/bNxC+fhAYeJq5kCgYEAlhguSbZeJ8jGVzZpl1FI
2B5OMSgs45IUoOKtXYSFKC4JuVZiZ+LCEqsGnnakSi2bWSLjx54g6umWx/BLI3U/
zqVuCPw2UkWWjs0jghOeRTxMqX+WJSuZqmaZrtPgrkSmCiGSWEhfTVINLNOgFBMH
wMSf0XsGgUlP9aA0yD6qPzU=
-----END PRIVATE KEY-----

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM