为 Github Enterprise 服务器配置 TLS 证书

6
在我的Github企业版上,当我使用密钥安装SSL证书时,它显示一个错误消息:
"Github SSL证书未被受信任的证书颁发机构(CA)签名或证书链缺少中间CA签名证书。"
我们的认证机构团队给了我4个证书:
1. SSL证书: github.pem 2. 一组3个CA证书: 根证书、子CA和子CA2
在我的Github企业版管理控制台上,需要两个条目:
1. x509 SSL证书 2. 未加密的密钥
我尝试过仅使用github.pem密钥以及通过连接CA证书的不同组合,但总是失败并显示相同的错误。
是否有一种连接证书的模式?
有什么线索可以解决这个问题吗?
提前感谢。

请将连接服务器使用的URL和 openssl s_client -connect <hostname>:<port> -tls1 -servername <hostname> | openssl x509 -text -noout 的输出发布在您的问题中,通过单击 编辑 将其添加到问题中(不要作为评论发布)。否则,我们无法重现它,也没有足够的信息来帮助排除故障。 - jww
你遇到了同样的问题吗?你解决了吗? - Drazen
2个回答

6
请按以下步骤将3个证书添加到您的.pem文件中:
  1. 在Notepad++中打开您的域证书pem文件。
  2. 在域证书下添加中间证书(DigiCertCA2.pem)。
  3. 将根证书(TrustedRoot.pem)添加到您的域证书中。
  4. 保存包含以下3个证书(域,中间和根)的.pem文件。
  5. 上传修改后的certificate.pem文件和私钥。
  6. 单击“保存设置”按钮。

2
我遇到了同样的问题。在尝试将PEM和Key文件加载到GitHub Enterprise时,我收到了相同的消息。证书是使用与我之前所做相同的方法创建的,但仍然失败。
Github ssl cert 证书未由受信任的证书颁发机构(CA)签名,或者证书链缺少中间CA签名证书。
我采取的步骤:
1.为服务器创建证书(带有私钥的Web服务器) 2.从用户个人存储区导出(PFX,包括路径中的所有证书并导出所有扩展属性) 3.C:\ OpenSSL-Win64 \ bin> openssl.exe pkcs12 -in git_key_included.pfx -nocerts -out priv-key.pem -nodes 4.C:\ OpenSSL-Win64 \ bin> openssl.exe pkcs12 -in git_key_included.pfx -nokeys -out cert.pem 5.C:\ OpenSSL-Win64 \ bin> openssl rsa -in priv-key.pem -out server.key
最终,我通过使用Notepad++打开PEM来解决了这个问题。openssl命令对旧导出的证书有效,但是在新导出的证书上交换了证书的顺序。损坏的证书具有:
主SSL证书 根证书 中间证书

原本的正确顺序应为:

主要SSL证书 中间证书 根证书

所以我调换了它们的顺序,然后就可以正常工作了。


1
谢谢!!!我认为这个答案是最好的(“所以我交换了它们的位置,然后它就起作用了。”是解决方案)。 - Alix Lourme

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接