java中Keytool生成证书
任何机构或者个人都可以申请数字证书,并使用数字证书对网络通信保驾护航。要获得数字证书,首先需要使用数字证书管理工具,如keytool、OpenSSL等,然后构建CSR(Certificate Siging Request,数字证书签发申请),提交给数字证书认证机构进行签名,最终形成数字证书。
Keytool 是一个Java 数据证书的管理工具 ,Keytool 将密钥(key)和证书(certificates)存在一个称为keystore的文件中。
在keystore里,包含两种数据:
(1)密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)
(2)可信任的证书实体(trusted certificate entries)——只包含公钥
JDK中Keytool常见的命令:
-genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书(在没有指定生成位置的情况下,keystore会存在用户系统默认目录)
-alias 产生别名,每个keystore都关联这一个独一无二的alias,这个alias通常不区分大小写
-keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中)
-keyalg 指定密钥的算法 (如 RSA DSA(如果不指定默认采用DSA))
-validity 指定创建的证书有效期多少天
-keysize 指定密钥长度
-storepass 指定密钥库的密码(获取keystore信息所需的密码)
-keypass 指定别名条目的密码(私钥的密码)
-dname 指定证书拥有者信息
-list 显示密钥库中的证书信息
-v 显示密钥库中的证书详细信息
-export 将别名指定的证书导出到文件
-file 参数指定导出到文件的文件名
-delete 删除密钥库中某条目
-printcert 查看导出的证书信息
-keypasswd 修改密钥库中指定条目口令
-import 将已签名数字证书导入密钥库
在JDK 1.4以后的版本中都包含了这一工具,它的位置为%JAVA_HOME%\bin\keytool.exe,如下图:
(1)构建自签名证书
在构建CSR之前,需要先在秘钥库中生成本地数字证书。生成本地数字证书需要提供用户的身份、加密算法、有效期等一些数字证书的基本信息。
keytool -genkeypair -keyalg RSA -keysize 1024 -sigalg MD5withRSA -va
lidity 365 -alias bo -keystore bo.keystore
(2)证书导出
执行完上述命令之后,我们已经在本地生成了一个数字证书,虽然没有经过证书认证机构进行认证,但是并不影响我们使用,我们可以使用相应的命令导出。
C:\Users\bo>keytool -exportcert -alias bo -file bo.cer -keystore bo.keystore -rfc
(3)导出CSR
如果想得到证书认证机构的认证,需要导出数字证书并签发申请(CSR),经过认证机构认证并签发后,再将认证后的证书导入到本地秘钥库和信任库。
keytool -certreq -alias bo -keystore bo.keystore -file bo.csr -v
导出CSR后,便可以到VerSign、GeoTrust等权威证书认证机构进行证书认证,但是通过这些认证机构认证的证书往往价格不菲。可以通过一些证书认证机构申请免费的证书,如Cacert。
(4)导入证书
获得证书认证机构颁发的数字证书后,需要将其导入信任库。
keytool -importcert -trustcacerts -alias bo -file bo.cer -keystore bo.keystore
(5)查看keystore中证书
通过上面一系列操作导入证书后,便可以通过相关命令,列出keystore中的证书。
keytool -list -alias bo -keystore bo.keystore
keytool没办法签发其它证书,只能只签名生成证书。因此用户如果需要签发证书,需要使用OpenSSL等来进行证书的签发和证书链的管理。
参考:
https://blog.csdn.net/yinhuaiya/article/details/81774314
https://www.cnblogs.com/xdp-gacl/p/3750965.html
java中Keytool生成证书相关推荐
- keytool生成证书_创建自签名ssl证书,Java生产jks证书
一.创建自签名ssl证书 下载openssl软件: https://pan.baidu.com/s/1Zy4W7pqSO8caoR_R5pF3DQ #提取码:bjd4 设置环境变量 进入openss ...
- Tomcat服务器配置https双向认证,使用JDK的keytool生成证书(适用于web、安卓、IOS)
Tomcat服务器配置https双向认证,使用JDK的keytool生成证书(适用于web.安卓.IOS) 一.原理 1.HTTP:平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的( ...
- 使用keytool生成证书和秘钥
使用keytool生成证书和秘钥 Java中的 keytool.exe(位于 JDK\Bin 目录下)可以用来创建数字证书,所有的数字证书是以一条一条(采用别名区别)的形式存入证书库的中,证书库中的 ...
- openssl生成证书linux,linux中openssl生成证书和自签证书linux操作系统 -电脑资料
下面来给大家介绍关于linux中openssl生成证书和自签证书的例子,整个过程都讲述的非常详细有兴趣的朋友可进入参考, 1.首先要生成服务器端的私钥(key文件):代码如下复制代码 openssl ...
- java中如何生成随机数?
java中如何生成随机数? package com.test.util; import java.text.SimpleDateFormat; import java.util.Date; impor ...
- java中如何生成可执行的jar文件
java中如何生成可执行的jar文件最简单的方法就是:jar -cfe Card.jar CardLayoutDemo CardLayoutDemo$1.class CardLayoutDemo$my ...
- Tomcat服务器配置https认证(使用keytool生成证书)
Tomcat服务器配置https认证(使用keytool生成证书) 一.证书生成 1 .生成服务器证书 (1)打开打开命令控制台,进入jdk的bin目录 (2)keytool为Tomcat生成证书(& ...
- java keytool生成证书_使用JDK自带的工具keytool生成证书
1.以管理员身份,打开CMD命令窗口,输入如下命令,生成证书: Microsoft Windows [版本 10.0.17134.523] (c) 2018 Microsoft Corporation ...
- java中RSA数字证书生成,jks文件生成以及读取。
一.Java代码生成cer证书文件: public class GetCertFile { //证书颁发者 static String CertificateIssuer = "C= ...
最新文章
- 《iOS取证实战:调查、分析与移动安全》一2.4 安全
- Java并发之公平锁
- java------线程同步方法
- Cracking Wifi Wpa-Wpa2 in 5 second——Dumpper V.80.8 +JumpStart+WinPcap
- User Mode Driver Management介绍(一)
- c# winform中窗体切换后释放及防止重复生成
- 在Angular 8中使用自定义MultiSelect下拉菜单创建动态行
- 寻找某个数c语言,C++_C语言实现两个递减数列中寻找某一个数,本文实例讲述了C语言实现两个 - phpStudy...
- chrome下方的copeascURL(cmd) 复制的内容,在windows的cmd中不可用的原因
- python爬虫实例100例-python 爬虫实例
- 如何将XML转换为HL7
- 拆字在线版-扌斥字在纟戋片反【转】------字库增强版
- jzoj 5850.【NOIP提高组模拟2018.8.25】e 可持久化线段树+lca
- 计算机专业毕业设计选题推荐(建议收藏)
- 显卡、显卡驱动、Nvcc、Cuda Driver、CudaToolkit 、Cudnn到底是什么?
- 微信小程序入门教程之四:API 使用
- android extra_shortcut_icon,Android Shortcut操作(一)
- 2.3 Bean装配
- jmeter非GUI模式如何压测并生成测试报告
- 用C#输出99乘法表
热门文章
- 华为云设计语言_多云架构落地设计和实施方案【华为云分享】
- Error querying database. Cause: java.sql.SQLException:
- 网络爬虫的原理和案例
- 【C++】侯捷C++面向对象高级编程(上)
- GPG error: NVIDIA NO_PUBKEY A4B469963BF863CC
- 计算机网络关键知识点记录
- canvas手绘正五边形
- sudo: unable to resolove host iZ2ze7gg2o6tplktzc1le0Z问题的解决方法
- windows10远程桌面连接
- Morse Code-神奇而朴实的摩斯电码