开发环境或者测试环境,有的时候需要用到 HTTPS ,在时间和成本上考虑,我们利用 Java 密码体系结构(JCA, Java Cryptography Architecture) 完成建设可用的加密通信库。
利用 Java 自带 keytool.exe 生成证书, Keytool 是一个 Java 数据证书的管理工具,在命令行方式下,生成服务器证书申请文 CSR ,然后到 CA 签发服务器证书。
- 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 ,创建密钥过程中需要手工输入。
~~
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:1F
- SHA256: 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
-
- 扩展:
-
- *******************************************
- *******************************************
- 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-----
-
-
- *******************************************
- *******************************************
- keytool -export -alias eviltop -file ./eviltop.crt -keystore ./eviltop.keystore -storepass 123456
- keytool -import -alias eviltop -file ./eviltop.crt -keystore ./eviltop.keystore -storepass 123456
- keytool -storepasswd -keystore ./eviltop.keystore -storepass 123456 -new 567890
- keytool -keypasswd -alias eviltop -keypass 123456 -new 654321 -storepass 567890 -keystore ./eviltop.keystore
- keytool -delete -alias eviltop -keystore "D:\Environment\JDK\1.8.0_301\jre\lib\security\cacerts" -storepass changeit