数字证书管理工具 openssl keytool

OPENSSL 命令

|-------------------------------------------------------|
| openssl command [ command_opts ] [ command_args ] |

常用command:

version 用于查看版本信息

enc 用于加解密

ciphers 列出加密套件

genrsa 用于生成私钥

-des|-des3|-idea:用来加密私钥文件的三种对称加密算法。

rsa RSA密钥管理(例如:从私钥中提取公钥,加密私钥,或去除加密)

req 生成证书签名请求(CSR)

crl 证书吊销列表(CRL)管理

ca CA管理(例如对证书进行签名)

dgst 生成信息摘要

rsautl 用于完成RSA签名、验证、加密和解密功能

passwd 生成散列密码

s_client 通用的SSL/TLS客户端测试工具

X509 X.509证书管理

verify X.509证书验证

pkcs7 PKCS#7协议数据管理

查看证书

openssl x509 -in server.cer -text

查看私钥

openssl rsa -text -noout -in server.key

验证server.crt 是否是由该私有CA签发的

openssl verify -CAfile ca.crt server.crt

openssl s_client 用于建立和测试SSL/TLS连接

参数

-connect host:ip 指定要连接的目标主机和端口

-CAfile 指定CA证书文件名,用于服务器证书的验证

-cert 指定客户端证书文件

-key 指定客户端私钥文件

-showcerts 显示服务器证书链

-debug 显示调试信息,包括SSL握手过程

验证服务器证书

openssl s_client -connect ossip:10511 -CAfile trust.cer

显示服务器证书链

openssl s_client -connect ossip:10511 -showcerts

[keytool]

keytool为java原生自带,安装java后不需要再进行安装,是jdk提供的密钥和证书管理工具,用于管理自己的公钥/私钥及证书申请,导入,位于JAVA_HOME\bin\keytool.exe。

-certreq:生成证书请求(少用)

-changealias:更改条目的别名

-delete:删除条目

-exportcert:导出证书 (jdk1.6之前export)
-genkeypair:生成密钥对( jdk1.6之前genkey)
-genseckey:生成密钥(对称加密)
-gencert:根据证书请求生成证书
-importcert:导入证书或证书链

-importpass:导入口令

-importkeystore:从其他密钥库导入一个或所有条目

-keypasswd:更改条目的密钥口令
-list:列出密钥库中的条目

-printcert:打印证书内容

-printcertreq:打印证书请求的内容

-printcrl:打印 CRL 文件的内容

-storepasswd:更改密钥库的存储口令

1、-genkeypair(生成密钥对/创建数字证书)

选项

-alias key的别名,每一个key通过alias区分

-keystore 密钥库名称

-keyalg 密钥算法名称(RSA)

-keypass 密钥口令

-storepass 密钥库口令

KeyStore

是一个存储库,可用于存储一系列密钥 证书,jdk提供了keytool命令来管理该存储库

java的JAVA_HOME/jre/lib/security/cacerts 是java标准信任库,存储了预信任的证书颁发机构的根证书

cacerts证书库默认密码 changeit

列出证书库中所有条目

keytool -list -keystore JAVA_HOME/jre/lib/security/cacerts

生成密钥

keytool -genkey -alias James -keyalg RSA -keystore mystore

导出生成证书

keytool -export -alias james -keystore mystore -file james.cer

将证书导入到java标准信任库cacerts中

keytool -import -alias james -keystore JAVA_HOME/jre/lib/security/cacerts -file james.cer

如果别名已经在cacerts中存在,删除别名

keytool -delete -alias james -keystore cacerts

相关推荐
快来卷java24 分钟前
JVM虚拟机篇(五):深入理解Java类加载器与类加载机制
java·jvm·mysql
禾小西2 小时前
Java 逐梦力扣之旅_[204. 计数质数]
java·算法·leetcode
ゞ 正在缓冲99%…2 小时前
leetcode295.数据流的中位数
java·数据结构·算法·leetcode·
有梦想的攻城狮4 小时前
spring-cloud-alibaba-nacos-config使用说明
java·spring·nacos·springcloud·配置中心
Yan-英杰5 小时前
【百日精通JAVA | SQL篇 | 第三篇】 MYSQL增删改查
java·数据库·sql
矛取矛求7 小时前
C++ 标准库参考手册深度解析
java·开发语言·c++
cijiancao7 小时前
23 种设计模式中的解释器模式
java·设计模式·解释器模式
南七行者7 小时前
对模板方法模式的理解
java·设计模式·模板方法
麻芝汤圆7 小时前
MapReduce 的广泛应用:从数据处理到智能决策
java·开发语言·前端·hadoop·后端·servlet·mapreduce
努力的搬砖人.7 小时前
java如何实现一个秒杀系统(原理)
java·经验分享·后端·面试