KeyTool 使用简介

keytool 是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。它还允许用户储存他们的通信对等者的公钥(以证书形式)。

keytool 将密钥和证书储存在一个所谓的密钥仓库中。缺省的密钥仓库实现将密钥仓库实现为一个文件。它用口令来保护私钥。

1.使用 -genkey

改参数是用来生成秘钥对。格式如下:keytool -genkey -alias duke -keypass mypassword

2. -genkeypair

创建证书库(keystore)及证书(Certificate) 

Keytool -genkeypair -alias test.mydomain.com -keyalg RSA -keysize 2048 -keypass mypassword -sigalg SHA256withRSA -dname "CN=test.mydomain.com,OU=test,O=test,L=beijing,C=CN" -validity 5475 -keystore D:\test.mydomain.com -keystore.p12 -storetype PKCS12-storepass mypassword

3. -certreq

生成证书请求(CSR),使用格式如下:

keytool -certreq -keyalg RSA -alias test.mydomain.com -keystore D:\test.mydomain.com_keystore.p12 -storetype PKCS12 -storepass mypassword -file D:\test.mydomain.com_certreq.csr

这样我们就可以吧生成的请求证书发给证书颁发机构去创建证书了。在完成证书申请后,会给我们三个文件:一级根证书,二级根证书和三级证书。我们还是要用keytool将颁发的证书合并到上面生成的P12文件中

keytool -import -trustcacerts -keystore D:\test.mydomain.com_keystore.p12 -storepass mypassword -alias root-file D:\root.cer(导入一级证书)

keytool -import -trustcacerts -keystore D:\test.mydomain.com_keystore.p12 -storepass mypassword -alias issuer-file D:\issuer.cer(导入二级证书)

keytool -import -trustcacerts -keystore D:\test.mydomain.com_keystore.p12 -storepass mypassword -companyroot-file D:\company.cer(导入三级证书)

4.遇到的问题

如果按照上面使用keytool -import将证书文件导入到P12文件中,你会遇到invalid keystore format,明明是正确的P12文件,为啥会报这样的错误呢。

我们在使用Keytoo -genkeypair的时候收使用参数-storetype指定为PCKS12的类型,我们在使用keytool -import的时候也要使用该数据就可以了,重新输入如下到CMD中就一切正常了。

keytool -import -trustcacerts -keystore D:\test.mydomain.com_keystore.p12 -storepass mypassword -storetype PKCS12 -alias root-file D:\root.cer(导入一级证书)

keytool -import -trustcacerts -keystore D:\test.mydomain.com_keystore.p12 -storepass mypassword  -storetype PKCS12 -alias issuer-file D:\issuer.cer(导入二级证书)

keytool -import -trustcacerts -keystore D:\test.mydomain.com_keystore.p12 -storepass mypassword  -storetype PKCS12 -companyroot-file D:\company.cer(导入三级证书)

posted @   VarForrest  阅读(531)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示