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(导入三级证书)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具