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

Fel*_*lby 85 ssl openssl amazon-ec2 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
Run Code Online (Sandbox Code Playgroud)

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

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

$ openssl rsa -in private.key -out private.pem
Run Code Online (Sandbox Code Playgroud)

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

private.pem --> Private Key
apps.mydomain.com.crt --> Public Key Certificate
gd_bundle.crt --> Certificate Chain
Run Code Online (Sandbox Code Playgroud)

当我单击"继续按钮"时,出现错误"错误:公钥证书和私钥不匹配".

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

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

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

有任何想法吗?

Jon*_*ill 61

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

  1. 将私钥转换为PEM:

    openssl rsa -in yourdomain.key -outform PEM

  2. 将证书和证书包转换为PEM:

    openssl x509 -inform PEM -in yourdomain.crt

    openssl x509 -inform PEM -in bundle.crt

  • 这个特别的答案确实对我有帮助。谢谢乔纳森。作为记录,yourdomain.crt 是公钥,即您从提供商处获得的证书(也可以是 .cer) (2认同)
  • @tq - 一些OpenSSL命令也采用`-config`选项.使用它来指定您正在使用的配置文件的路径. (2认同)

Chr*_*s J 39

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

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

yourdomain.crt - >公钥

gd_bundle.crt - >证书链

你很高兴去:)

  • 天哪,我因为问题丢了这么多个小时,你救了我!我购买了RapidSSL证书:诀窍是1)转换私钥,就像你在这里建议的那样; 2)颠倒RapidSSL提供的证书链中的证书顺序.谢谢! (2认同)

Fel*_*lby 23

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

  • 奇怪,我还以为我早就接受了…… (2认同)

小智 7

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

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

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