Ssl &引用;公钥证书和私钥不';“t匹配”;使用Godaddy颁发的证书时

Ssl &引用;公钥证书和私钥不';“t匹配”;使用Godaddy颁发的证书时,ssl,amazon-ec2,openssl,ssl-certificate,Ssl,Amazon Ec2,Openssl,Ssl Certificate,我正在尝试在Amazon AWS上设置的新负载平衡器上安装GoDaddy SSL证书。我最初在Godaddy使用keytool程序创建证书,直接安装在Glassfish 3.1服务器(Amazon linux ami)上。我直接在服务器上进行设置没有问题。我现在需要将证书从web服务器移动到新的负载平衡器。Amazon要求私钥和证书采用PEM格式,因此我使用GoDaddy的“重新密钥”工具创建了新的证书。当我在AWS管理控制台上的负载平衡器设置屏幕中加载它们时,会收到错误消息:“公钥证书和私钥不

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

以下是我创建关键点的方式:

$ 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)作为服务器类型(我也尝试了“other”和“Cpanel”,但它们看起来都是一样的)

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

$ openssl rsa -in private.key -out private.pem
此时,我返回AWS管理控制台,创建负载平衡器,添加安全服务器重定向,并将以下文件的内容放在屏幕上要求设置ssl证书的相应字段中:

private.pem --> Private Key
apps.mydomain.com.crt --> Public Key Certificate
gd_bundle.crt --> Certificate Chain
当我单击“继续按钮”时,我得到错误“错误:公钥证书和私钥不匹配。”

-有没有一种方法可以测试我从Amazon收到的错误消息是否有效?我觉得奇怪的是,当我严格遵循戈达迪的指示时,钥匙却不匹配

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

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


有什么想法吗?

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

仅为了记录在案,以及任何其他试图找出真相的人:

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

yourdomain.crt ->公钥

gd_bundle.crt ->证书链


你可以走了:)

我们找到了这个问题的替代解决方案。我们有着同样的症状和同样的错误

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


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

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


我必须将文件转换为Windows样式(CRLF)以上载私钥。

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

  • 将私钥转换为PEM:

    openssl rsa-in yourdomain.key-outform PEM

  • :

    openssl x509-通知PEM-在您的域中。crt

    openssl x509-通知PEM-捆绑式.crt


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


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

    您可以接受您的答案,让人们知道这已经解决了吗?奇怪的是,我以为我很久以前就已经接受了……这个答案真的帮了我的忙。谢谢你,乔纳森。请注意,yourdomain.crt是公钥,是您从提供商处获得的证书,(也可以是.cer)。我一直收到一个错误
    警告:无法打开配置文件:/etc/pki/tls/openssl.cnf
    @tq-一些openssl命令也使用
    -config
    选项。使用它来指定您正在使用的配置文件的路径。@felby应该将这个标记为接受的答案。这是唯一一个不会对iOS设备产生SSL信任问题的答案。这个答案对通配符SSL非常有用。您必须同时转换domain.crt和gd_bundle.crt file.OMG,我因为这个问题浪费了很多时间,您刚刚救了我!我购买了一个RapidSSL证书:诀窍是1)像您在这里建议的那样转换私钥,2)颠倒RapidSSL提供的证书链中证书的顺序。谢谢不断向我询问密码,但我的rapidssl证书没有密码。sudo命令将询问管理员密码,除非您的帐户设置为通过几种不同的方法不需要密码。那是私人助理吗