zoukankan      html  css  js  c++  java
  • JDK 生成数字证书

    JDK(keytool.exe)生成数字证书
    2010-11-21 15:52
    QUOTE:

    keytool JAVA是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。它还允许用户储存他们的通信对等者的公钥(以证书形式)。通过keytool –help查看其用法,详细信息可以参考http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html 

    创建证书Java 中的 keytool.exe (位于 JDK/Bin 目录下)可以用来创建数字证书,所有的数字证书是以一条一条(采用别名区别)的形式存入证书库的中,证书库中的一条证书包含该条证书的私钥,公钥和对应的数字证书的信息。证书库中的一条证书可以导出数字证书文件,数字证书文件只包括主体信息和对应的公钥。
    每一个证书库是一个文件组成,它有访问密码,在首次创建时,它会自动生成证书库,并要求指定访问证书库的密码。
    在创建证书的的时候,需要填写证书的一些信息和证书对应的私钥密码。这些信息包括 CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx,它们的意思是:
    ? CN(Common Name - 名字与姓氏):其实这个“名字与姓氏”应该是域名,比如说localhost或是blog.devep.net之类的。输成了姓名,和真正运行的时候域名不符,会出问题。浏览器访问时,弹出一个对话框,提示“安全证书上的名称无效,或者与站点名称不匹配”,用户选择继续还是可以浏览网页。但是用http client写程序访问的时候,会抛出类似于“javax.servlet.ServletException: HTTPS hostname wrong: should be ”的异常。
    ? OU(Organization Unit - 组织单位名称)
    ? O(Organization - 组织名称)
    ? L(Locality - 城市或区域名称)
    ? ST(State - 州或省份名称)
    ? C(Country - 国家名称)
    可以采用交互式让工具提示输入以上信息,也可以采用参数,如:-dname “CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx”来自动创建。

    创建一个证书 
    指定证书库为 D:/keystore/test,创建别名为 Tomcat 的一条证书,它指定用 RSA 算法生成,且指定密钥长度为 1024,证书有效期为 1 年:
    keytool -genkey -alias Tomcat -keyalg RSA -keysize 1024 -keystore C:/keystore/test -validity 365
    显示证书库中的证书使用如下命令: keytool -list -keystore C:/keystore/test 将显示 C:/keystore/test 证书库的的所有证书列表

    导出到证书文件 
    使用命令:keytool -export -alias Tomcat -file C:/keystore/TC.cer -keystore C:/keystore/test 将把证书库C:/keystore/test 中的别名为 Tomcat 的证书导出到 TC.cer 证书文件中,它包含证书主体的信息及证书的公钥,不包括私钥,可以公开。
    导出的证书文件是以二进制编码文件,无法用文本编辑器正确显示,可以加上 -rfc参数以一种可打印的编者编码输出。 如:
    keytool -export -alias Tomcat -file C:/keystore/TC.cer -keystore C:/keystore/test –rfc

    查看证书的信息 
    通过命令: keytool -printcert -file D:/keystore/TC.cer 可以查看证书文件的信息。 也可以在 Windows 资源管理器中双击产生的证书文件直接查看。

    删除密钥库中的条目
     
    keytool -delete -alias Tomcat -keystore C:/keystore/test
    这条命令将 C:/keystore/test 库中的 Tomcat 这一条证书删除了。

    修改证书条目口令 
    keytool -keypasswd -alias Tomcat -keystore C:/keystore/test,可以以交互的方式修改 C:/keystore/test 证书库中的条目为 Tomcat 的证书。
    Keytool -keypasswd -alias Tomcat -keypass oldpasswd -new newpasswd -storepass storepasswd -keystore C:/keystore/test 这一行命令以非交互式的方式修改库中别名为 Tomcat 的证书的密码为新密码 newpasswd,行中的 oldpasswd 是指该条证书的原密码, storepasswd 是指证书库的密码。

    =====================================================================

    下面我们来生成一个证书库:

     

    QUOTE:

    C:Program FilesJavajdk1.5.0_08in>keytool -genkey -keystore tohot.store -alias x
    输入keystore密码: tohot
    Keystore 密码太短 -至少必须为6个字符
    输入keystore密码: password
    您的名字与姓氏是什么?
    [Unknown]: yangxg
    您的组织单位名称是什么?
    [Unknown]: x.cn
    您的组织名称是什么?
    [Unknown]: x .cn
    您所在的城市或区域名称是什么?
    [Unknown]: changzhou
    您所在的州或省份名称是什么?
    [Unknown]: jiangsu
    该单位的两字母国家代码是什么
    [Unknown]: CN
    CN=xxx, OU=x.cn, O=x.cn, L=changzhou, ST=jiangsu, C=CN 正确吗?
    [否]: y

    输入<x>的主密码
            (如果和 keystore 密码相同,按回车):

    注意:第一次要求输入的密码是这个证书库的访问密码,第二次的是私钥。

    然后从这个x.store文件中导出认证文件。

     

    QUOTE:

    C:Program FilesJavajdk1.5.0_08in>keytool -export -alias x-file x.cer -keystore x.store
    输入keystore密码: password
    保存在文件中的认证 <x.cer>
  • 相关阅读:
    深入了解 Flink 网络栈(二):监控、指标和处理背压
    物联网安全技术提高区块链应用数据的可信度
    威胁快报|Bulehero挖矿蠕虫升级,PhpStudy后门漏洞加入武器库
    Ververica Platform-阿里巴巴全新Flink企业版揭秘
    重磅 | 阿里云与MongoDB达成战略合作,成为全球唯一提供最新版MongoDB的云厂商
    阿里巴巴叶军:政企数字化转型,现在是最重要的时机
    Canonical 开源 MicroK8 | 云原生生态周报 Vol. 25
    nyoj42——连通图加欧拉(连通图板子)dfs
    nyoj38——最小生成树
    nyoj20——有向无环图深搜模板
  • 原文地址:https://www.cnblogs.com/huapox/p/3509641.html
Copyright © 2011-2022 走看看