使用keytool生成证书和秘钥

Java中的 keytool.exe(位于  JDK\Bin 目录下)可以用来创建数字证书,所有的数字证书是以一条一条(采用别名区别)的形式存入证书库的中,证书库中的一条证书包含该条证书的私钥,公钥和对应的数字证书的信息。证书库中的一条证书可以导出数字证书文件,数字证书文件只包括主体信息和对应的公钥。

Keytool是一个Java数据证书的管理工具。Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里,包含两种数据:
密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)
可信任的证书实体(trusted certificate entries)——只包含公钥

Alias(别名)
每个keystore都关联这一个独一无二的alias,这个alias通常不区分大小写

keystore的存储位置
在没有制定生成位置的情况下,keystore会存在与用户的系统默认目录,
如:对于window xp系统,会生成在系统的C:\Documentsand Settings\UserName\
文件名为“.keystore”

keystore的生成

所有的数字证书是以一条一条(采用别名区别)的形式存入证书库的中,证书库中的一条证书包含该条证书的私钥,公钥和对应的数字证书的信息。证书库中的一条证书可以导出数字证书文件,数字证书文件只包括主体信息和对应的公钥。 
每一个证书库是一个文件组成,它有访问密码,在首次创建时,它会自动生成证书库,并要求指定访问证书库的密码。 
在创建证书的的时候,需要填写证书的一些信息和证书对应的私钥密码。

引用keytool -genkey-alias tomcat -keyalg RSA  -keystore d:\mykeystore -dname"CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN" -keypasschangeit -storepass -validity 180

参数说明:
-genkey表示要创建一个新的密钥
-dname表示密钥的Distinguished Names,
CN=commonName
OU=organizationUnit    O=organizationName     L=localityName    S=stateName
C=country   Distinguished Names表明了密钥的发行者身份
-keyalg使用加密的算法,这里是RSA     -alias密钥的别名
-keypass私有密钥的密码,这里设置为changeit
-keystore 密钥保存在D:盘目录下的mykeystore文件中(为证书库位置)
-storepass 存取密码,这里设置为changeit,这个密码提供系统从mykeystore文件中将信息取出
-validity该密钥的有效期为 180天 (默认为90天)

步骤:

1.生成server端密钥

  1.  keytool -genkey -alias serverkey -keystore key OfServer.keystore

之后会出现如下信息,(第一次输入密码:打开keystore文件密码,第二次密码为秘钥,一般两次密码相同)

根据私钥导出服务端证书(将把证书库 monitor.keystore中的别名为 serverkey的证书导出到KeyOfServer.cer证书文件中,它包含证书主体的信息及证书的公钥,不包括私钥,可以公开。)

1.  keytool -export -alias serverkey -keystore keyOfServer.keystore -file server.crt  

将服务端证书,加入客户端的认证证书列表中(只包含公钥)

1.keytool -import -alias serverkey -file server.crt -keystore trustOfClient.keystore 


2:生成client端密钥

1. keytool -genkey -alias clientkey -keystore keyOfClient.keystore <span style="font-size: 18px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>

根据私钥导出客户端证书

 1.  keytool -export -alias clientkey -keystore keyOfClient.keystore -file client.crt  


将证书加到服务端信任列表

 1.  keytool -import -alias serverkey -file client.crt -keystore trustOfServer.keystore  

至此,客户端和服务器端的证书都已经生成了

参考文档:http://blog.csdn.net/a351945755/article/details/22782229

http://blog.csdn.net/anialy/article/details/8548139

使用keytool生成证书和秘钥相关推荐

  1. 生成自签名证书:生成证书和秘钥

    生成证书和秘钥 简单生成的方法: 1.mkdir  /certs 2.cd  /certs 3.生成自签名证书 sudo openssl req -newkey rsa:2048 -new -node ...

  2. 使用CloudFlare 的 PKI 工具集 cfssl 来生成 Certificate Authority (CA) 证书和秘钥文件

    要安装kubernetes最新版集群,https://github.com/opsnull/follow-me-install-kubernetes-cluster 这个文档必须要研习一下了. 以下实 ...

  3. uniapp的APP证书、秘钥、应用包名、应用签名

    uni_appid: uniapp的id 秘钥: 生成APP证书时设置的密码 应用包名: uniapp打包时有个安卓包名既应用包名 应用签名: 常是微信开放平台中特定需要的,下载微信签名工具安装到手机 ...

  4. iOS安全之RSA加密/生成公钥、秘钥 pem文件

    在iOS中使用RSA加密解密,需要用到.der和.p12后缀格式的文件,其中.der格式的文件存放的是公钥(Public key)用于加密,.p12格式的文件存放的是私钥(Private key)用于 ...

  5. Tomcat服务器配置https双向认证,使用JDK的keytool生成证书(适用于web、安卓、IOS)

    Tomcat服务器配置https双向认证,使用JDK的keytool生成证书(适用于web.安卓.IOS) 一.原理 1.HTTP:平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的( ...

  6. Tomcat服务器配置https认证(使用keytool生成证书)

    Tomcat服务器配置https认证(使用keytool生成证书) 一.证书生成 1 .生成服务器证书 (1)打开打开命令控制台,进入jdk的bin目录 (2)keytool为Tomcat生成证书(& ...

  7. keytool生成证书_基于 TrueLicense 的项目证书验证

    使用场景 1. 开发的软件产品在交付使用的时候,往往有一段时间的试用期,这期间我们不希望自己的代码被客户二次拷贝,这个时候 license 就派上用场了,license 的功能包括设定有效期.绑定 i ...

  8. 使用JDK自带keytool生成证书

    JDK keytool 的介绍 keytool 是JDK 自带的可以生成证书的工具,只要安装JDK 并且配置好相应的环境变量,就可以直接用CMD 命令窗口使用(本文中使用JDK1.8). C:\> ...

  9. java中Keytool生成证书

    任何机构或者个人都可以申请数字证书,并使用数字证书对网络通信保驾护航.要获得数字证书,首先需要使用数字证书管理工具,如keytool.OpenSSL等,然后构建CSR(Certificate Sigi ...

最新文章

  1. python tab键自动补全_Python Tab自动补全
  2. 28 多进程之数据交换Pipe
  3. QToolButton设置背景无效的思考
  4. WinCE CEDDK之DMA相关函数
  5. [机器学习-坑] error: Microsoft Visual C++ 14.0 is required
  6. Java —— 正则表达式
  7. 使用基础node.js的express框架在连接数据库的过程中,出现Error: Cannot enqueue Handshake after invoking quit.的解决方案
  8. 英特尔第十代处理器为什么不支持win7_Intel最新CPU和主板不能装Win7怎么办
  9. 创建maven项目时添加自定义property属性
  10. 5、设备树操作reg
  11. Downward API
  12. 蓝牙篇之蓝牙核心规范学习笔记(V5.3)汇总
  13. [leetcode 913] 猫和老鼠(博弈、dp)
  14. Unity Android手机触屏事件
  15. 共享系统APP开发:带你体验真实的共享生活
  16. 【优化理论与方法】图解法
  17. RK3588 ssh Failed to start OpenBSD Secure Shell server 以及E: Sub-process /usr/bin/dpkg returned无法下载软件
  18. 盗版始祖——海盗湾(The Pirate Bay)
  19. 用英语提交软件测试bug,软件测试——关于提交bug随笔
  20. JMS RabbitMQ消息代理

热门文章

  1. 苹果微信下载 iOS微信各版本列表
  2. 2. Zookeeper
  3. SpringBoot进阶(一):再回首SpringBoot maven 项目的三种启动方式
  4. Excel访问方法论及开源库
  5. LIBSVM (三) 葡萄酒种类识别
  6. 用Qt实现图片的负片效果
  7. LeetCode 1052. 爱生气的书店老板
  8. plc远程监控.plc远程通讯.PLC远程控制
  9. 【程序人生】“阶段总结”-不论过往
  10. 洛谷 P3924 康娜的线段树 解题报告