【问题标题】:How to generate a key from CRT file?如何从 CRT 文件生成密钥?
【发布时间】:2017-08-04 17:18:12
【问题描述】:

我正在尝试从 CRT 文件生成密钥。

我在 Windows 上安装了 OpenSSL 并尝试使用

获取随机密钥

我有 CRT 文件,但我不确定如何从中获取密钥。在 CRT 文件中,它显示 -----BEGIN CERTIFICATE-----

【问题讨论】:

    标签: openssl wsdl ssl-certificate public private-key


    【解决方案1】:

    在图像中,注意OpenSSL> 提示。这意味着您在openssl 命令中,并且您不需要再次输入“openssl”(这就是为什么您会收到“openssl 是无效命令”的消息)。在这种情况下,您只需输入genrsa etc...

    但我不知道我是否得到你想要做的事情(from a crt 文件生成密钥),主要是因为:genrsa 是生成新密钥的命令使用RSA algorithm 配对。简而言之,它会生成 2 个密钥:一个私有密钥和一个公共密钥。公钥将由Certification Authority签名,结果是数字证书(可以在CRT文件中)

    我的意思是:如果您有 CRT 文件(又名证书),则意味着密钥对已由证书颁发机构生成并签名。无法它生成一个新的密钥(因为它已经有一个密钥)。

    如果您想获取证书中的公钥,您必须使用 openssl x509 命令读取它。 openssl x509 -text -in crtfile 之类的东西(如果你在 OpenSSL> 提示符内,则省略“openssl”)。 PS:此命令打印整个证书。如果你想要只是公钥,你可以运行x509 -pubkey -noout -in crtfile

    如果要生成新的密钥对,请使用genrsa

    【讨论】:

    • 感谢您的帮助,在 OpenSSL 提示符中如何找到我的 C:// 目录以便可以使用 x509 -text -in crtfile?
    • 我认为可以将“crtfile”替换为文件的完整路径
    • @Samantha,我编辑了答案,添加了一个选项以仅从证书中获取公钥(如果这是您需要的)