数字证书管理工具 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

相关推荐
色空大师14 小时前
【debug调试详解-idea】
java·ide·intellij-idea·调试·远程调试
程序猿阿越14 小时前
AutoMQ源码(一)读、写、Compaction
java·后端·源码
ywl47081208714 小时前
jwt生产token,简单版helloworld
java·数据库·spring
未若君雅裁14 小时前
生产问题排查与性能瓶颈定位:日志、监控、链路追踪、压测与Arthas
java·web安全
器灵科技14 小时前
AI视频工具实测:Seedance/可灵/HappyHorse谁最能打?
java·运维·数据库·人工智能·github
南部余额14 小时前
RabbitMQ 进阶:延迟队列完全指南
java·分布式·spring·rabbitmq
phltxy14 小时前
Spring AI Agents 智能体模式实战
java·人工智能·spring
摇滚侠14 小时前
MyBatis 入门到项目实战 特殊 SQL 的执行 34-37
java·sql·mybatis
phltxy15 小时前
Spring AI 可观测性与 Zipkin 实战
java·人工智能·spring
兰令水15 小时前
leecodecode【面试150】【2026.6.13打卡-java版本】
java·算法·leetcode