首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >pem、crt、key文件的区别

pem、crt、key文件的区别
EN

Stack Overflow用户
提问于 2020-08-01 00:02:58
回答 1查看 21.8K关注 1票数 17

我在理解openssl生成的文件和如何检测它们之间的区别时遇到了问题。

例如,我尝试使用私钥生成自签名证书,并从p12格式生成JKS文件。我像个狂人一样在谷歌上搜索,但我仍然不知道如何正确地生成它,以便能够使用以下命令。

代码语言:javascript
复制
openssl pkcs12 -export -in user.pem -inkey user.key -certfile user.pem -out testkeystore.p12
keytool -importkeystore -srckeystore testkeystore.p12 -srcstoretype pkcs12 -destkeystore wso2carbon.jks -deststoretype JKS

来源:https://www.ibm.com/support/pages/how-generate-jks-keystore-existing-private-key

我发现了几个不同的命令来生成自签名证书和私钥,但我不知道如何将生成的文件映射到上面的命令,更糟糕的是,我不明白这些命令是做什么的。我的意思是,我看到他们生成的文件,并理解用于签名的证书和私钥(或者反过来:| ),但这些命令和cert.pem === certificate.crt之间的区别是什么-这些文件扩展名快把我逼疯了。

代码语言:javascript
复制
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem

这是我在openssl命令中遇到类似问题的另一种情况。在这一点上,我甚至准备阅读一些RFC (我希望它不会发展到这个地步:)

提前感谢您的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-01 00:15:48

这些文件名代表密钥生成和验证过程的不同部分。请注意,名称只是约定,您可以很容易地将文件命名为pepperoni.pizza,并且内容将是相同的,因此一定要注意如何使用文件名。

关于PKI - key的简介分为两部分,一个是公钥,一个是私钥。公钥可以公开和广泛地分发,您可以使用它来验证使用私钥生成的信息,但不能复制这些信息。私钥必须保密。

.key文件通常是服务器用来加密和打包数据以供客户端验证的私钥。

.pem文件通常是公钥,客户端使用它来验证和解密服务器发送的数据。

.p12文件嵌入了密钥的两部分,因此管理员可以轻松管理密钥的两部分。

.cert.crt文件是证书签名请求,由受信任的第三方用于验证密钥对的所有权,而无需直接访问私钥(这使对您的网站没有直接了解的最终用户可以确信证书是有效的)。在自签名场景中,您将使用证书签名请求和您自己的私钥来验证您的私钥(因此是自签名的)。根据您的spefic应用程序的不同,这可能不是必需的。( web服务器或RPC服务器需要,但其他内容不多)。

JKS密钥库是Java的本机文件格式,用于存储和管理上面的部分或全部组件,并保存每个密钥允许或拒绝的相关功能的数据库。

您列出的命令在我看来很好,除了询问不同文件的用途之外,我没有看到任何问题。如果您需要更多信息,请丰富您的问题。

票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63195304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档