今天我的证书过期了,需要从 GoDaddy 重新颁发一个。过去,我使用他们通过 ELB SSL 接口生成的 pem 编码没有遇到任何问题。但是,当我尝试在证书链文本区域中包含 SHA-2 包(证书链中证书的 pem 编码列表)时,我收到“无效公钥证书”错误。如果我不包含证书链,我可以配置证书(但它在 iOS 和 Android 上无法验证)。
一年前我这样做时没有遇到任何问题。另外,我应该注意的是,这个捆绑文件在两个没有负载平衡器的 Apache 服务器上运行良好。
答案1
改用 gd_bundle-g2.crt。
感谢我值得信赖的顾问的朋友们。
快速复审
确保私钥是 RSA 格式且没有密码。
openssl rsa -in private.key -文本> private.pem
您从 godaddy 获得的 .crt 文件可能已经是 pem 格式。
openssl x509 -inform PEM -in blahblah.crt > public.pem
下载gd_bundle-g2.crt从https://certs.godaddy.com/anonymous/repository.pki
字段映射(亲爱的亚马逊,这个表格太糟糕了。)
- 私钥 -> private.pem
- 公钥证书 -> public.pem
- 证书链 -> gd_bundle-g2.crt
如果您的表格看起来像这样,这些说明可能仍然适用。https://i.stack.imgur.com/yB918.png
答案2
支持证据...我在使用 GoDaddy SHA-2 中间证书 (gd_bundle-g2-g1.crt) 时也遇到了这个问题。
它在 AWS 控制台上失败,从“aws cli”并使用“openssl verify”:
gd_bundle-g2-g1.crt:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=https://certs.godaddy.com/repository//CN=GoDaddy Root 证书颁发机构 - G2 错误 20,深度查找为 0:无法获取本地颁发者证书
我曾尝试颠倒顺序以及这里和其他地方提到的其他事项,但迄今为止还没有成功。