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

相关推荐
Mahir082 小时前
Spring 循环依赖深度解密:从问题本质到三级缓存源码级解析
java·后端·spring·缓存·面试·循环依赖·三级缓存
RyFit3 小时前
SpringAI 常见问题及解决方案大全
java·ai
石山代码4 小时前
C++ 内存分区 堆区
java·开发语言·c++
绝知此事4 小时前
【算法突围 01】线性结构与哈希表:后端开发的收纳术
java·数据结构·算法·面试·jdk·散列表
无风听海4 小时前
C# 隐式转换深度解析
java·开发语言·c#
一只大袋鼠5 小时前
Git 进阶(二):分支管理、暂存栈、远程仓库与多人协作
java·开发语言·git
德思特5 小时前
从 Dify 配置页理解 RAG 的重要参数
java·人工智能·llm·dify·rag
YOU OU6 小时前
Spring IoC&DI
java·数据库·spring
один but you6 小时前
从可变参数到 emplace:现代 C++ 性能优化的核心组合
java·开发语言
是码龙不是码农7 小时前
ThreadPoolExecutor 7 个核心参数详解
java·线程池·threadpool