使用keytool生成证书和秘钥
使用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.mkdir /certs 2.cd /certs 3.生成自签名证书 sudo openssl req -newkey rsa:2048 -new -node ...
- 使用CloudFlare 的 PKI 工具集 cfssl 来生成 Certificate Authority (CA) 证书和秘钥文件
要安装kubernetes最新版集群,https://github.com/opsnull/follow-me-install-kubernetes-cluster 这个文档必须要研习一下了. 以下实 ...
- uniapp的APP证书、秘钥、应用包名、应用签名
uni_appid: uniapp的id 秘钥: 生成APP证书时设置的密码 应用包名: uniapp打包时有个安卓包名既应用包名 应用签名: 常是微信开放平台中特定需要的,下载微信签名工具安装到手机 ...
- iOS安全之RSA加密/生成公钥、秘钥 pem文件
在iOS中使用RSA加密解密,需要用到.der和.p12后缀格式的文件,其中.der格式的文件存放的是公钥(Public key)用于加密,.p12格式的文件存放的是私钥(Private key)用于 ...
- Tomcat服务器配置https双向认证,使用JDK的keytool生成证书(适用于web、安卓、IOS)
Tomcat服务器配置https双向认证,使用JDK的keytool生成证书(适用于web.安卓.IOS) 一.原理 1.HTTP:平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的( ...
- Tomcat服务器配置https认证(使用keytool生成证书)
Tomcat服务器配置https认证(使用keytool生成证书) 一.证书生成 1 .生成服务器证书 (1)打开打开命令控制台,进入jdk的bin目录 (2)keytool为Tomcat生成证书(& ...
- keytool生成证书_基于 TrueLicense 的项目证书验证
使用场景 1. 开发的软件产品在交付使用的时候,往往有一段时间的试用期,这期间我们不希望自己的代码被客户二次拷贝,这个时候 license 就派上用场了,license 的功能包括设定有效期.绑定 i ...
- 使用JDK自带keytool生成证书
JDK keytool 的介绍 keytool 是JDK 自带的可以生成证书的工具,只要安装JDK 并且配置好相应的环境变量,就可以直接用CMD 命令窗口使用(本文中使用JDK1.8). C:\> ...
- java中Keytool生成证书
任何机构或者个人都可以申请数字证书,并使用数字证书对网络通信保驾护航.要获得数字证书,首先需要使用数字证书管理工具,如keytool.OpenSSL等,然后构建CSR(Certificate Sigi ...
最新文章
- python tab键自动补全_Python Tab自动补全
- 28 多进程之数据交换Pipe
- QToolButton设置背景无效的思考
- WinCE CEDDK之DMA相关函数
- [机器学习-坑] error: Microsoft Visual C++ 14.0 is required
- Java —— 正则表达式
- 使用基础node.js的express框架在连接数据库的过程中,出现Error: Cannot enqueue Handshake after invoking quit.的解决方案
- 英特尔第十代处理器为什么不支持win7_Intel最新CPU和主板不能装Win7怎么办
- 创建maven项目时添加自定义property属性
- 5、设备树操作reg
- Downward API
- 蓝牙篇之蓝牙核心规范学习笔记(V5.3)汇总
- [leetcode 913] 猫和老鼠(博弈、dp)
- Unity Android手机触屏事件
- 共享系统APP开发:带你体验真实的共享生活
- 【优化理论与方法】图解法
- RK3588 ssh Failed to start OpenBSD Secure Shell server 以及E: Sub-process /usr/bin/dpkg returned无法下载软件
- 盗版始祖——海盗湾(The Pirate Bay)
- 用英语提交软件测试bug,软件测试——关于提交bug随笔
- JMS RabbitMQ消息代理