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

相关推荐
JIngJaneIL4 分钟前
基于Java+ vue智慧医药系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
2501_916766548 分钟前
【Spring框架】SpringJDBC
java·后端·spring
谷哥的小弟14 分钟前
Spring Framework源码解析——ApplicationContextInitializer
java·spring·源码
布谷歌17 分钟前
在java中实现c#的int.TryParse方法
java·开发语言·python·c#
while(1){yan}28 分钟前
网络基础知识
java·网络·青少年编程·面试·电脑常识
Ulana32 分钟前
计算机基础10大高频考题解析
java·人工智能·算法
黄俊懿39 分钟前
【深入理解SpringCloud微服务】Seata(AT模式)源码解析——@GlobalTransactional注解与@globalLock生效的原理
java·spring cloud·微服务·云原生·架构·系统架构·架构师
wheelmouse778843 分钟前
一个优雅、通用、零侵入的 CSV 导出工具类(Java 实战)
java·开发语言
cike_y1 小时前
JavaWeb-Request应用与Cookie&[特殊字符]️Session
java·开发语言·安全·java安全
hashiqimiya1 小时前
两个步骤,打包war,tomcat使用war包
java·服务器·前端