使用Godaddy颁发的证书时,“公钥证书和私钥不匹配”

时间:2011-07-19 20:24:00

标签: ssl amazon-ec2 openssl ssl-certificate

我正在尝试在我在Amazon AWS上设置的新负载均衡器上安装GoDaddy SSL证书。我最初在Godaddy使用keytool程序在Glassfish 3.1服务器(Amazon linux ami)上直接安装创建了证书。我没有问题直接在服务器上获得该设置。我现在需要将证书从Web服务器移动到新的负载均衡器。亚马逊要求私钥和证书采用PEM格式,因此我使用GoDaddy的“重定密钥”工具来创建新的证书。当我在AWS Mgmt Console的负载均衡器设置屏幕中加载它们时,我收到错误消息:“公钥证书和私钥不匹配。”

以下是我创建密钥的方法:

$ openssl genrsa -des3 -out private.key 2048
$ openssl req -new -key private.key -out apps.mydomain.com.csr

然后我在“重定时”过程中将.csr文件提交给GoDaddy。重新加密完成后,我下载了2个新创建的证书(apps.mydomain.com.crt& gd_bundle.crt)。我下载它们选择(Apache)作为服务器的类型(我也试过“其他”和“Cpanel”,但所有看起来都是一样的。)

此时,我使用以下命令从private.key文件中删除加密:

$ openssl rsa -in private.key -out private.pem

此时,我将返回AWS Mgmt控制台,创建负载均衡器,添加安全服务器重定向,并将以下文件的内容放在屏幕上的相应字段中,要求设置ssl证书:

private.pem --> Private Key
apps.mydomain.com.crt --> Public Key Certificate
gd_bundle.crt --> Certificate Chain

当我点击“继续按钮”时,我收到错误“错误:公钥证书和私钥不匹配。”

- 我有没有办法测试我从亚马逊收到有效的错误消息?当我非常密切地关注GoDaddy的指示时,我觉得钥匙不匹配似乎很奇怪。

我在创建.csr之前尝试创建没有RSA加密的private.key文件,这似乎没有任何区别。

我还假设我从GoDaddy下载的.crt文件是.PEM格式,但我不知道如何验证这一点。

有什么想法吗?

6 个答案:

答案 0 :(得分:61)

对我来说,这是一个简单的两步:

  1. 将私钥转换为PEM:

    openssl rsa -in yourdomain.key -outform PEM

  2. Convert the certificate and certificate bundle to PEM

    openssl x509 -inform PEM -in yourdomain.crt

    openssl x509 -inform PEM -in bundle.crt

答案 1 :(得分:39)

只是为了记录和其他任何想要弄明白的人:

yourdomain.key    - >终端命令:sudo openssl rsa -in yourdomain.key -outform PEM -out yourdomain.pem      - >私钥

yourdomain.crt    - >公钥

gd_bundle.crt    - >证书链

你很高兴去:)

答案 2 :(得分:23)

看起来问题是我将密钥和证书的内容复制到AWS管理控制台的方式。我在Windows 7桌面上使用在Virtual Box中运行的Ubuntu桌面;将值从gedit屏幕复制并粘贴到Windows框中运行的浏览器中。一旦我在与Web浏览器相同的盒子上打开密钥和证书文件(在本例中为Windows),证书就完成了。我猜测在Virtual Box客户端和主机之间使用共享剪辑板时,文件的某些部分没有正确完成。案件结案。

答案 3 :(得分:7)

我们找到了解决此问题的替代方案。我们有相同的症状和相同的错误。

然后我们再次尝试重新输入pem代码,但这次我们确保输入一次并确保光标位于每个窗口末尾的空白行。然后我们保存了它。 它工作了。

这解决了我们的问题,所以它可以为其他人解决。

答案 4 :(得分:1)

一个小问题。我正在使用Windows框(Win 7 Pro),当我使用OpenSSL的Windows端口时,输出的文件具有Unix风格的行尾字符(LF)。

我必须将文件转换为Windows样式(CRLF)才能上传私钥。

答案 5 :(得分:0)

我可以向您推荐替代解决方案和信息。 通常,所有证书都是PEM文件格式。您只需打开记事本或任何文本编辑器,然后拖动以.crt文件格式收到的文件即可。通常称为.PEM文件。如果您的密钥工具中加载了证书,您可以将证书从keytool导出为pfx文件。然后,您可以将pfx文件与pfx文件中的私钥分开。因为pfx文件是证书和私钥的组合。因此,您可以单独获取私钥文件并在您的amazon aws上使用它。

我怀疑可能有另一种方法来安装证书。您可以联系证书颁发机构,有没有办法让您的证书重新发布。