SSL 证书生成

àì夳堔傛蜴生んèń 2022-05-25 11:14 365阅读 0赞

注意要点

  • 名字和姓氏输入项:访问的域名地址
  • alias:别名可以随便写,一般要有意义,后续操作别名要一致,我这里保持和域名统一了

证书生成与导入

1. 使用java自带keytool创建本地密钥库

  • 密码:changeit
  • 别名:abc.fxbin123.com

语法: keytool -genkey -alias abc.fxbin123.com -keyalg RSA -keystore abc.keystore

  1. keytool -genkey -alias abc.fxbin123.com -keyalg RSA -keystore abc.keystore
  2. 输入密钥库口令:
  3. 再次输入新口令:
  4. 您的名字与姓氏是什么?
  5. [Unknown]: abc.fxbin123.com
  6. 您的组织单位名称是什么?
  7. [Unknown]: fxbin123
  8. 您的组织名称是什么?
  9. [Unknown]: abc
  10. 您所在的城市或区域名称是什么?
  11. [Unknown]: beijing
  12. 您所在的省/市/自治区名称是什么?
  13. [Unknown]: beijing
  14. 该单位的双字母国家/地区代码是什么?
  15. [Unknown]: cn
  16. CN=abc.fxbin123.com, OU=fxbin123, O=abc, L=beijing, ST=beijing, C=cn是否正确?
  17. [否]: y
  18. 输入 <abc.fxbin123.com> 的密钥口令
  19. (如果和密钥库口令相同, 按回车):
  20. 再次输入新口令:
  21. Warning:
  22. JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore abc.keystore -destkeystore abc.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12

2. 把密钥库导出成证书文件

语法: keytool -export -alias abc.fxbin123.com -keystore abc.keystore -file abc.crt -storepass changeit

  1. keytool -export -alias abc.fxbin123.com -keystore abc.keystore -file abc.crt -storepass changeit
  2. 存储在文件 <abc.crt> 中的证书
  3. Warning:
  4. JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore abc.keystore -destkeystore abc.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12

3. 查看证书

语法: keytool -printcert -file abc.crt

  1. keytool -printcert -file abc.crt
  2. 所有者: CN=abc.fxbin123.com, OU=fxbin123, O=abc, L=beijing, ST=beijing, C=cn
  3. 发布者: CN=abc.fxbin123.com, OU=fxbin123, O=abc, L=beijing, ST=beijing, C=cn
  4. 序列号: af49cba
  5. 有效期为 Sun May 13 22:02:59 CST 2018 Sat Aug 11 22:02:59 CST 2018
  6. 证书指纹:
  7. MD5: XXXXXXXXXXXXXXXXXX
  8. SHA1: XXXXXXXXXXXXXXXXXX
  9. SHA256: XXXXXXXXXXXXXXXXXX
  10. 签名算法名称: SHA256withRSA
  11. 主体公共密钥算法: 2048 RSA 密钥
  12. 版本: 3
  13. 扩展:
  14. #1: ObjectId: 2.5.29.14 Criticality=false
  15. SubjectKeyIdentifier [
  16. KeyIdentifier [
  17. 0000: E3 5F 26 2B B7 15 C9 4A 16 15 10 AF FB 95 1E 3D ._&+...J.......=
  18. 0010: 8D 97 28 25 ..(%
  19. ]
  20. ]

4. 将创建过的证书导入到java证书库

语法: keytool -import -keystore “${JAVA_HOME}/jre/lib/security/cacerts” -file “/Users/abc/Desktop/abc.crt” -alias abc.fxbin123.com

这里建议把进入caserts目录再操作,不然容易出现如下错误,大概是无法识别,另外需要加上root权限。

  1. keytool 错误: java.io.FileNotFoundException: ${JAVA_HOME}/jre/lib/security/cacerts (No such file or directory)

实例

  1. keytool -import -keystore cacerts -file "/Users/abc/Desktop/abc.crt" -alias abc.fxbin123.com
  2. Password:
  3. 输入密钥库口令:
  4. 所有者: CN=abc.fxbin123.com, OU=fxbin123, O=abc, L=beijing, ST=beijing, C=cn
  5. 发布者: CN=abc.fxbin123.com, OU=fxbin123, O=abc, L=beijing, ST=beijing, C=cn
  6. 序列号: 1e2220da
  7. 有效期为 Sun May 13 22:02:59 CST 2018 Sat Aug 11 22:02:59 CST 2018
  8. 证书指纹:
  9. MD5: XXXXXXXXXXXXXXXXXX
  10. SHA1: XXXXXXXXXXXXXXXXXX
  11. SHA256: XXXXXXXXXXXXXXXXXX
  12. 签名算法名称: SHA256withRSA
  13. 主体公共密钥算法: 2048 RSA 密钥
  14. 版本: 3
  15. 扩展:
  16. #1: ObjectId: 2.5.29.14 Criticality=false
  17. SubjectKeyIdentifier [
  18. KeyIdentifier [
  19. 0000: E3 5F 26 2B B7 15 C9 4A 16 15 10 AF FB 95 1E 3D ._&+...J.......=
  20. 0010: 8D 97 28 25 ..(%
  21. ]
  22. ]
  23. 是否信任此证书? [否]: y
  24. 证书已添加到密钥库中
  25. security

5. 查看JDK证书内容

语法: keytool -list -v -keystore cacerts -alias abc.fxbin123.com

导入成功之后,jdk证书文件会有对应的如下内容

  1. keytool -list -v -keystore cacerts -alias abc.fxbin123.com
  2. 输入密钥库口令:
  3. 别名: abc.fxbin123.com
  4. 创建日期: 2018-5-23
  5. 条目类型: trustedCertEntry
  6. 所有者: CN=abc.fxbin123.com, OU=fxbin123, O=abc, L=beijing, ST=beijing, C=cn
  7. 发布者: CN=abc.fxbin123.com, OU=fxbin123, O=abc, L=beijing, ST=beijing, C=cn
  8. 序列号: af49cba
  9. 有效期为 Sun May 13 22:02:59 CST 2018 Sat Aug 11 22:02:59 CST 2018
  10. 证书指纹:
  11. MD5: XXXXXXXXXXXXXXXXXX
  12. SHA1: XXXXXXXXXXXXXXXXXX
  13. SHA256: XXXXXXXXXXXXXXXXXX
  14. 签名算法名称: SHA256withRSA
  15. 主体公共密钥算法: 2048 RSA 密钥
  16. 版本: 3
  17. 扩展:
  18. #1: ObjectId: 2.5.29.14 Criticality=false
  19. SubjectKeyIdentifier [
  20. KeyIdentifier [
  21. 0000: E3 5F 26 2B B7 15 C9 4A 16 15 10 AF FB 95 1E 3D ._&+...J.......=
  22. 0010: 8D 97 28 25 ..(%
  23. ]
  24. ]
  25. security

6. 根据 alias 别名删除 JDK 证书

语法: keytool -delete -alias abc.fxbin123.com -keystore cacerts

  1. keytool -delete -alias abc.fxbin123.com -keystore cacerts
  2. Password:
  3. 输入密钥库口令:

发表评论

表情:
评论列表 (有 0 条评论,365人围观)

还没有评论,来说两句吧...

相关阅读

    相关 生成SSL证书

    使用openssl生成证书 openssl是目前最流行的SSL密码库工具,其提供了一个通用、健壮、功能完备的工具套件,用以支持SSL/TLS协议的实现。 比如生成到:/