如何配置keystore(jks)证书?

Java

1 理论部分

1.1 证书

1.1.1 证书的概念

证书是来自一个实体(个人或公司等)的数字签名声明,用于声明某个实体的公钥(包括其他信息)具有特定的价值。

1.1.2 证书的作用

– 检验数据的完整性,意味着数据没有被修改或篡改。
– 检验数据的真实性,意味着数据来自于证书持有的实体。

1.2 keytool

1.2.1 keytool的简介

– keytool是一个密码和证书的管理实用程序

1.2.2 keytool的作用

– keytool使得用户可以使用数据证书签名来管理非对称密钥对(公钥和私钥)和相关证书
– keytool使得用户可以使用数据证书签名来管理对称加密和解密(DES)中使用的密钥和密码
– keytool命令可将密码和证书存储在密码库中(KeyStore)

1.2.3 keytool的应用场景

– keytool生成的数字签名用于用户自验证
– keytool生成的数字签名用于验证数据完整性验证
– keytool生成的数字签名用于验证服务的真实性

1.3 keystore

1.3.1 keystore的概念

keystore即密码库,是密码和证书的存储设施

1.3.2 keystore的条目分类

keystore文件包含两种条目,
– 密码实体(Key entity),秘钥(secret key),密钥信息以加密的方式存储
– 可信任的证书实体(trusted certificate entries),只包含服务端的公钥证书,也称可信证书

1.3.3 Key Store ailas简介

即密码库别名,它的作用是使得密码库条目可通过唯一的别名访问

2 实践部分

2.1 环境信息

IP Address = 10.168.0.81
OS = CentOS 7.3 x86_64
请搭建以下JDK环境,
https://www.cmdschool.org/archives/397

2.2 创建证书

keytool -genkey -alias www.cmdschool.org -keyalg RSA -keysize 1024 -keypass cmdschoolpwd -validity 365 -keystore ~/www.cmdschool.org.keystore -storepass cmdschoolpwd2

2.3 查看证书

2.3.1 可读格式打印

keytool -list -v -keystore ~/www.cmdschool.org.keystore -storepass cmdschoolpwd2

2.3.2 编码格式打印

keytool -list -rfc -keystore ~/www.cmdschool.org.keystore -storepass cmdschoolpwd2

2.4 导出证书

2.4.1 导出操作

keytool -export -alias www.cmdschool.org -keystore ~/www.cmdschool.org.keystore -file ~/www.cmdschool.org.crt -storepass cmdschoolpwd2

2.4.2 检查导出证书

keytool -printcert -file ~/www.cmdschool.org.crt

2.5 权威机构认证的证书

权威机构认证的证书请直接去腾旭云申请DV证书即可。
https://console.cloud.tencent.com/ssl

参阅文档:
https://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html
https://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html#CHDJHCAA
http://blog.csdn.net/fengwind1/article/details/52191520
http://www.micmiu.com/lang/java/keytool-start-guide/
http://blog.csdn.net/dotuian/article/details/51722300

没有评论

发表回复

Java
如何修复Java证书不信任错误?

1 前言 一个问题,一篇文章,一出故事。 笔者最近更换服务器的证书后,有的程序连接更换证书后的服务器 …

Java
如何理解java socket与connection timeout?

1 前言 一个问题,一篇文章,一出故事。 笔者最近收到开发的通知,说生产环境的程序链接不上Mongo …

Java
如何安装Windows openJDK?

1 前言 一个问题,一篇文章,一出故事。 最近从新安装Windows系统,于是需要从新安装openJ …