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

相关推荐
福兮说6 小时前
JSON 格式正确,数据就可靠吗?我用一份自编配置检查类型与空值
java·前端·json
紧跟先前的步伐7 小时前
Go AI Agent 实战 03|Token、上下文窗口与模型调用成本
java·人工智能·golang
const_qiu8 小时前
第四章 00:开篇 —— 从「会聊天」到「记得住、会干活、能协作」
java·开发语言·人工智能·python
Wang's Blog8 小时前
Java 项目实战: 交友项目 - 个人资料管理的更新接口实现与坑
java·开发语言·交友
Promising_GEO8 小时前
GEE实战02期:从卫星波段开始:利用 Sentinel-2 自己计算 NDVI
java·sentinel·遥感·空间分析
大文说跨境8 小时前
亚马逊多账号管理浏览器怎么选?云登/紫鸟/AdsPower 对比
java·前端·自动化
CoderYanger8 小时前
Java EE 进阶:4.Spring Web MVC 入门(第一弹)
java·开发语言·前端·spring·面试·java-ee·mvc
顽疲9 小时前
java springboot vue 养老系统源码详解:请假 care_leave 销假与床位停费日扣实践
java·vue.js·spring boot
XIAEE9 小时前
一个即时通讯项目是怎么长出来的:(Spring Boot 3 + Vue 3 微前端 + 悟空 IM + LiveKit)
java·spring
n87659 小时前
Playwright Java WEB UI 自动化实现框架与逻辑
java·前端·ui