如何从密钥库中导出 .key 和 .crt

Posted

技术标签:

【中文标题】如何从密钥库中导出 .key 和 .crt【英文标题】:How to export .key and .crt from keystore 【发布时间】:2014-05-30 00:47:27 【问题描述】:

当我在开发机器上构建 android 应用程序时,我需要为应用程序提供 SSL 证书,因此我使用 keytool 为 Tomcat 生成了一个密钥库。我从密钥库中提取证书并将其放入 .bks 以使用 android,一切顺利。

现在我们必须将所有服务器端代码转移到需要 Apache HTTP 和 Tomcat 的服务器上。 Apache HTTP SSL 需要 .key 和 .crt 文件,我找不到从密钥库导出 .key 和 .crt 文件的方法

有人可以帮忙吗?我发现你可以从 .pem 生成 .crt

openssl x509 -outform der -in your-cert.pem -out your-cert.crt

但是我怎样才能得到 .key 文件呢?

【问题讨论】:

【参考方案1】:

您可以使用填写步骤创建一组新的密钥和自签名证书: 1. 创建密钥和证书签名请求: openssl req -newkey rsa:2048 -out cert.csr -keyout cert.key 2.pem的创建 openssl x509 -req -signkey cert.key -in cert.csr -out cert.pem

【讨论】:

【参考方案2】:

Keytool(在 JDK 中可用)允许您将证书导出到文件:

keytool -exportcert -keystore [keystore] -alias [alias] -file [cert_file]

要导出常规密钥,您应该使用 -importkeystore 命令(惊喜):

keytool -importkeystore -srckeystore [keystore] -destkeystore [target-keystore] -deststoretype PKCS12

【讨论】:

这永远行不通,导出密钥不能这样工作 您介意解释一下为什么它不适合您吗? 对于 apache,这不是您导出的方式。首先,您需要以 .p12 格式导出密钥然后,仅导出证书以创建 .crt 文件并仅导出密钥或使用 openSSL 创建 .key 文件。这样做会产生错误,证书无效 PEM 文件。见,serverfault.com/questions/715827/… 问题是如何导出密钥文件。转换为 PEM 本身已经在问题中进行了解释 密钥文件以 .p12 格式导出,但后来不清楚如何使用 openSSL 将其存储到 .key 文件中

以上是关于如何从密钥库中导出 .key 和 .crt的主要内容,如果未能解决你的问题,请参考以下文章

如何从自签名证书的密钥库中导出私钥

如何从 iOS 设备的 iPod 库中导出 mp3 文件?

从钥匙串“我的证书”中导出 p12 文件

密钥库被篡改或密码不正确?

避免从 Linux 上的可执行文件中导出符号

如何从浏览器 SSL/TLS 会话中导出主密钥?