zoukankan      html  css  js  c++  java
  • 使用JDK自带的keytool工具生成证书

    一、keytool 简介

      keytool 是java用于管理密钥和证书的工具,它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。在JDK 1.4以后的版本中都包含了这一工具,它的位置为%JAVA_HOME%inkeytool.exe,如下图所示:

    其功能包括:

    • 创建并管理密钥
    • 创建并管理证书
    • 作为CA 为证书授权
    • 导入导出证书

    keytool官方文档

    二、keytool的用法

    三、生成证书

    生成证书主要是使用" -genkey",该命令的可用参数如下:

    示例:生成一个名称为tomcat的证书(cas服务https环境证书生成示例)

    keytool -genkey -alias tomcat -keyalg RSA -keystore D:/cas.keystore  

    功能说明:

    生成一个别名为tomcat的证书,该证书存放在名为cas.keystore的密钥库中,若cas.keystore密钥库不存在则创建。

    参数说明:

    -genkey:生成一对非对称密钥;

    -alias:指定密钥对的别名,该别名是公开的;
    -keyalg:指定加密算法,本例中的采用通用的RAS加密算法;

    -keystore:密钥库的路径及名称,不指定的话,默认在操作系统的用户目录下生成一个".keystore"的文件。

    注意:

      1.密钥库的密码至少必须6个字符,可以是纯数字或者字母或者数字和字母的组合等等

      2."名字与姓氏"应该是输入域名,而不是我们的个人姓名,其他的可以不填

    执行完上述命令后,在D盘下生成了一个"cas.keystore"的文件,如下图所示:

    四、导出证书

     导出证书主要是使用" -export",该命令的可用参数如下:

    示例:将名为cas.keystore的证书库中别名为tomcat的证书条目导出到证书文件cas.crt中

    keytool -export -trustcacerts -alias tomcat -file D:/cas.crt -keystore D:/cas.keystore

    执行完上述命令后,在D盘下生成了一个"cas.crt"的文件,如下图所示:

     

    五、导入证书

    导入证书主要是使用" -import",该命令的可用参数如下:

    示例1:将证书文件cas.crt导入到名为test_cacerts的证书库中

    keytool -import -file D:/cas.crt -keystore D:/test_cacerts

    示例2:将证书文件test.crt导入到名为cacerts的证书库中(这里将会演示将证书导入到jdk的证书库中)

    keytool -import -trustcacerts -alias tomcat -file D:/cas.crt -keystore %JAVA_HOME%/jre/lib/security/cacerts

    注:次例中jdk证书库的默认密码为:changeit 

    六、查看密钥库里面的证书

    keytool -list -keystore D:/cas.keystore

    七、查看证书信息

    keytool -printcert -file D:/cas.crt

    八、删除密钥库中的条目

     示例:删除密钥库cas.keystore中别名为tomcat的证书条目

    keytool -delete -keystore D:/cas.keystore -alias tomcat

    九、修改证书条目的口令

    示例:将密钥库cas.keystore中别名为test的证书条目的密码修改为666666(别名为test的证书条目必须存在)

    keytool -keypasswd -alias test -keystore D:/cas.keystore

  • 相关阅读:
    Hibernate save, saveOrUpdate, persist, merge, update 区别
    Eclipse下maven使用嵌入式(Embedded)Neo4j创建Hello World项目
    Neo4j批量插入(Batch Insertion)
    嵌入式(Embedded)Neo4j数据库访问方法
    Neo4j 查询已经创建的索引与约束
    Neo4j 两种索引Legacy Index与Schema Index区别
    spring data jpa hibernate jpa 三者之间的关系
    maven web project打包为war包,目录结构的变化
    创建一个maven web project
    Linux下部署solrCloud
  • 原文地址:https://www.cnblogs.com/Jimc/p/10152999.html
Copyright © 2011-2022 走看看