zoukankan      html  css  js  c++  java
  • 利用JDK自带工具keyTool生成安全证书

    前言:说一下最近做的工作,主要利用iText给网页中生成好的html报表转化为pdf格式的文件,并且在其中加入水印,数字签名等等,这部分主要介绍安全证书的目的就是为了做数字签名部分用的。

    下面利用jdk中自带的keytool生成安全证书:

    1:生成服务器证书

    打开CMD命令行工具,cd jdk的bin目录下,如下图所示:

     

    利用keytool生成安全证书:官网api

    下面说一下简单的参数

    keytool 
    -genkey   (在用户主目录中创建一个默认文件”.keystore”,还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书)
    -alias tomcat(别名) 
    -keypass 123456(别名密码) 
    -keyalg RSA(算法) 
    -keysize 1024(密钥长度) 
    -validity 365(有效期,天单位) 
    -keystore d:/temp/keys/tomcat.keystore(指定生成证书的位置和证书名称)         //注意d:/temp/keys/文件夹必须提前建立好
    -storepass 123456(文件存储的密码,也就是获取keystore信息所需的密码)

    结合起来:

    keytool -genkey -alias tomcat -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore d:/temp/keys/tomcat.keystore -storepass 123456

    回车之后会让你填写如下图信息:

    如上图我不小心将路径写错了,则会出现找不着对应文件的错误。当我修改过来在继续执行,则会发现建立完成。

    2 生成客户端证书

     客户端是为了证书的相互验证,为了能将证书顺利导入至IE和Firefox,证书格式应该是PKCS12,当然,默认情况下证书有多种格式可以选择。

    因此,使用如下命令生成:
    
    keytool 
    -genkey 
    -alias client                   (别名)
    -keypass 123456                 (密码)
    -keyalg RSA                    (算法)
    -storetype PKCS12                 (存储方式)
    -keypass 123456                  (key密码)
    -storepass 123456               (store密码)
    -keystore D:、temp/keys/client.p12    (客户端验证证书存储路径)

    整合起来:

    keytool -genkey -alias client -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -storetype PKCS12 -keystore D:/temp/keys/client1.p12 -storepass 123456

    填完信息之后,没有任何提示表示成功

    3 让服务器端信任客户端证书

    1、由于不能直接将PKCS12格式的证书库导入,必须先把客户端证书导出为一个单独的CER文件,使用如下命令:

    keytool -export -alias client -keystore D:/temp/keys/client.p12 -storetype PKCS12 -keypass 123456 -file D:/temp/keys/client.cer

    注意:

     

    同时在对应的文件夹下面生成了验证文件:client1.cer

    2、将该文件导入到服务器的证书库,添加为一个信任证书:

    keytool -import -v -file D:/temp/keys/client1.cer -keystore D:/temp/keys/tomcat.keystore -storepass 123456

    完成之后通过list命令查看服务器的证书库,可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书:

    keytool -list -v -keystore D:/temp/keys/tomcat.keystore

    4 让客户端信任服务器证书

    1、由于是双向SSL认证,客户端也要验证服务器证书,因此,必须把服务器证书添加到浏览器的“受信任的根证书颁发机构”。由于不能直接将keystore格式的证书库导入,必须先把服务器证书导出为一个单独的CER文件,使用如下命令:

    keytool -keystore D:/temp/keys/tomcat.keystore -export -alias tomcat6 -file D:/temp/keys/server.cer

    对应的目录下面生成信任文件

    2、双击server.cer文件,按照提示安装证书,将证书填入到“受信任的根证书颁发机构”。填入方法:

    打开浏览器   - 工具  -  internet选项-内容- 证书-把中级证书颁发机构里的www.localhost.com(该名称即时你前面生成证书时填写的名字与姓氏)证书导出来-再把导出来的证书导入  受信任的根颁发机构  就OK了。

      

  • 相关阅读:
    八大排序
    如何在VirtualBox虚拟机软件上安装Win7虚拟系统
    Android 的网络编程
    Android设计模式-观察者模式
    java开发之——[接口回调]
    MVC,MVP设计模式
    [Android四大组件之二]——Service
    [Android四大组件之一]——Activity
    Android中Context详解
    [ Android 五种数据存储方式之四 ] —— ContentProvider存储数据
  • 原文地址:https://www.cnblogs.com/xiaxj/p/8777440.html
Copyright © 2011-2022 走看看