Java生成SSL证书
生活随笔
收集整理的這篇文章主要介紹了
Java生成SSL证书
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 1. 背景
- 2. 演示環境
- 3. 命令
- 4. 創建證書
- 5. 查看證書
- 5.1. 顯示詳細
- 5.2. 編碼打印
- 6. 導入導出證書
- 6.1. 導出
- 6.2. 導入
- 7. 修改密碼
- 7.1. 修改密鑰庫
- 7.2. 修改密鑰庫指定條目
- 8. 刪除密碼
1. 背景
開發環境或者測試環境,有的時候需要用到 HTTPS ,在時間和成本上考慮,我們利用 Java 密碼體系結構(JCA, Java Cryptography Architecture) 完成建設可用的加密通信庫。
利用 Java 自帶 keytool.exe 生成證書, Keytool 是一個 Java 數據證書的管理工具,在命令行方式下,生成服務器證書申請文 CSR ,然后到 CA 簽發服務器證書。
2. 演示環境
- Windows 10
- Jdk 1.8.0.131
3. 命令
- genkey:定義將要創建一個新的密鑰
- alias:別名, alias ,不區分大小寫
- keyalg:指定加密的算法,這里是 RSA
- keystore:指定密鑰保存路徑,在 D:盤目錄下的 Code 文件中
- dname:表示密鑰的 Distinguished Names
- keypass:私鑰的密碼
- storepass:密鑰庫密碼
- validity:創建的證書有效期,單位為 天
- list:列出證書
- rfc:可編碼方式打印證書
- v:顯示詳細信息
- import:將已簽名數字證書導入密鑰庫
- export:將別名指定的證書導出到文件
- keysize:指定密鑰長度
- delete:刪除密鑰庫中某條目
- file:參數指定導出到文件的文件名
- keypasswd:修改密鑰庫中指定條目的密碼
- storepasswd:修改密鑰庫的密碼
4. 創建證書
keytool -genkey -alias eviltop -keyalg RSA -keystore D:\Code\eviltop.keystore -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN" -keypass 123456 -storepass 123456 -validity 180當不指定 keypass 和 storepass ,創建密鑰過程中需要手工輸入。
5. 查看證書
5.1. 顯示詳細
~~
keytool -list -v -keystore eviltop.keystore -storepass 123456
~~~txt$ keytool -list -v -keystore eviltop.keystore -storepass 123456 密鑰庫類型: PKCS12 密鑰庫提供方: SUN您的密鑰庫包含 1 個條目別名: eviltop 創建日期: 2022年8月13日 條目類型: PrivateKeyEntry 證書鏈長度: 1 證書[1]: 所有者: CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN 發布者: CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN 序列號: 2bce8e3 生效時間: Sat Aug 13 22:38:02 CST 2022, 失效時間: Thu Feb 09 22:38:02 CST 2023 證書指紋:SHA1: 76:60:92:F3:44:22:39:4F:66:B8:F1:B2:7B:11:BF:C6:66:AE:56:1FSHA256: 19:FD:21:B9:C9:51:BA:D9:82:3F:F6:C3:69:59:2D:99:E8:19:32:2C:05:46:7F:64:76:AB:A0:89:9E:38:20:8D 簽名算法名稱: SHA256withRSA 主體公共密鑰算法: 2048 位 RSA 密鑰 版本: 3擴展:******************************************* *******************************************5.2. 編碼打印
keytool -list -rfc -keystore eviltop.keystore -storepass 123456 $ keytool -list -rfc -keystore eviltop.keystore -storepass 123456 密鑰庫類型: PKCS12 密鑰庫提供方: SUN您的密鑰庫包含 1 個條目別名: eviltop 創建日期: 2022年8月13日 條目類型: PrivateKeyEntry 證書鏈長度: 1 證書[1]: -----BEGIN CERTIFICATE----- MIIDZTCCAk2gAwIBAgIEArzo4zANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJD TjELMAkGA1UECBMCU0gxCzAJBgNVBAcTAlNIMRIwEAYDVQQKEwlsb2NhbGhvc3Qx EjAQBgNVBAsTCWxvY2FsaG9zdDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTIyMDgx MzE0MzgwMloXDTIzMDIwOTE0MzgwMlowYzELMAkGA1UEBhMCQ04xCzAJBgNVBAgT AlNIMQswCQYDVQQHEwJTSDESMBAGA1UEChMJbG9jYWxob3N0MRIwEAYDVQQLEwls b2NhbGhvc3QxEjAQBgNVBAMTCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQAD ggEPADCCAQoCggEBAIXMJuibBSyK60r+QMt9aqbrcSH/Esja31cbujh7DRJdjRgv 6c6d93JGQhzBe0mvWUnshi3KhmRCr44S2ZRtGk+UIEK+/cJWRgQzT3GFkNUe6pUh dSe31g740409iu96/NihI2GjbsYJHsgsRktXBS8Wk7AjJlp2tFEb88d2wK/Ul3wW Z/cuZnbed4x51htKOosyrLhtGM8QOXZfhNgAoVGY61eVhp5SB/TL4o9XnSaZsKfM L/UV6QXmgrqsbyH7MLQCT6E/Hr7wW3lnwsSpiNg/49ETxYlS4Fj6N/O7rH4HFnWx RXHKgFuKGsj7cZ0cELbTaydG8CqdptGybVkA3dECAwEAAaMhMB8wHQYDVR0OBBYE FJlqY0G6hbf1+D9Q3vg18Z+2mI51MA0GCSqGSIb3DQEBCwUAA4IBAQAoskcTy9Kl 5iOMiQTyu71TEY48wx94ajqdRrdLm5frKawh115lGUhDEz+w+NAO+dGirNHuoyXf Bl2G7qUVF6rbNVGHrwUlCdVFLD02l2nLVvqjQEnicxU6P5IBwxBHhbQfKEdFOETI jr8gQKshDNgO+C6ugktnLfSNkiMs6UYeySWcZQDetZJbmts7N6mbpZW/h1Looku5 IJRkfwL5xEStRcOM1aEjIrATKveZQfbDPFQCpJmTfktoa1K4pob22/FeOPkSz35W EJEp4eOFY/0kir4oacwyada1PUocklCJ+iiTLwLtzrue5upzBaFikyyhmtGiuT2p NApthnwtHmuv -----END CERTIFICATE-----******************************************* *******************************************6. 導入導出證書
6.1. 導出
keytool -export -alias eviltop -file ./eviltop.crt -keystore ./eviltop.keystore -storepass 1234566.2. 導入
keytool -import -alias eviltop -file ./eviltop.crt -keystore ./eviltop.keystore -storepass 1234567. 修改密碼
7.1. 修改密鑰庫
keytool -storepasswd -keystore ./eviltop.keystore -storepass 123456 -new 5678907.2. 修改密鑰庫指定條目
keytool -keypasswd -alias eviltop -keypass 123456 -new 654321 -storepass 567890 -keystore ./eviltop.keystore8. 刪除密碼
keytool -delete -alias eviltop -keystore "D:\Environment\JDK\1.8.0_301\jre\lib\security\cacerts" -storepass changeit總結
以上是生活随笔為你收集整理的Java生成SSL证书的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#编程实现阶乘的两种方法
- 下一篇: android 两个经纬度计算方位角和距