• Java生成SSL证书


    Java-big

    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
    
    
    • 1
    • 2
    • 3

    当不指定 keypassstorepass ,创建密钥过程中需要手工输入。

    20220813223812

    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: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
    
    扩展:
    
    *******************************************
    *******************************************
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    5.2. 编码打印

    
    keytool -list -rfc -keystore eviltop.keystore -storepass 123456
    
    
    • 1
    • 2
    • 3
    
    $ 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-----
    
    
    *******************************************
    *******************************************
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    6. 导入导出证书

    6.1. 导出

    
    keytool -export -alias eviltop -file ./eviltop.crt -keystore ./eviltop.keystore -storepass 123456
    
    
    • 1
    • 2
    • 3

    20220813224758

    6.2. 导入

    
    keytool -import -alias eviltop -file ./eviltop.crt -keystore ./eviltop.keystore -storepass 123456
    
    
    • 1
    • 2
    • 3

    7. 修改密码

    7.1. 修改密钥库

    
    keytool -storepasswd -keystore ./eviltop.keystore -storepass 123456 -new 567890
    
    
    • 1
    • 2
    • 3

    7.2. 修改密钥库指定条目

    
    keytool -keypasswd -alias eviltop -keypass 123456 -new 654321 -storepass 567890 -keystore ./eviltop.keystore
    
    
    • 1
    • 2
    • 3

    8. 删除密码

    
    keytool -delete -alias eviltop -keystore "D:\Environment\JDK\1.8.0_301\jre\lib\security\cacerts" -storepass changeit
    
    
    • 1
    • 2
    • 3
  • 相关阅读:
    拼多多开放平台订单信息查询接口【pdd.order.basic.list.get订单基础信息列表查询接口(根据成交时间)】代码对接教程
    九阳真经之各大厂校招
    android学习笔记(三)
    驰援 | 1月28日送达5万只口罩,能链科技收到医院感谢信
    基于java web技术的班级同学录网站-计算机毕业设计
    KepServer EX6模拟仿真PlC数据以及点表的复制跟项目的迁移
    全志R128芯片应用开发案例——驱动 WS2812 流水灯
    uni.scanCode不支持h5扫码(用拍照或者获取相册识别二维码和条码)
    销售抓住客户心理的话术
    五年之后超过10000订阅者
  • 原文地址:https://blog.csdn.net/rothchil/article/details/126557800