【问题标题】:Why is my server certificate being rejected?为什么我的服务器证书被拒绝?
【发布时间】:2014-07-04 13:00:08
【问题描述】:

我正在尝试使用 TLS 1.2 将我的应用程序连接到服务器。服务器正在使用已由设备上已安装的自签名 CA 证书签名的证书(我将 CA 证书通过电子邮件发送给自己,点击它。现在它显示在“设置”->“常规”->“配置文件”下)。这以前在我的应用程序中工作,但我们已经更改了我们正在使用的 CA 证书,所以我也更新了服务器的证书。现在我遇到 SSL 故障。

我看到的错误是 errSSLXCertChainInvalid 来自我在客户端上对 SSLHandshake 的调用。据我所知,服务器证书应该是有效的。 openssl verify -CAfile ca-cert.pem server-cert.pem 返回 OK,并且 ca-cert.pem 是我在设备上安装的同一个 CA 证书。

有什么想法吗?谢谢!

【问题讨论】:

    标签: ios ssl keychain secure-transport


    【解决方案1】:

    Apple 的documentation 中有一些关于此错误的信息:

    errSSLXCertChainInvalid — 对等点的证书链无效;例如,链内的签名验证失败,或者没有找到证书。

    如果你使用SSLSetPeerDomainName:

    您可以使用此功能来验证对等方证书中的通用名称字段。如果您调用此函数,并且证书中的公用名与您在 peerName 参数中指定的值不匹配,则握手失败并返回 errSSLXCertChainInvalid。

    我建议卸载您的设备配置文件,然后创建一个新的。

    此外,检查您是否可以从 Web 浏览器等无错误地访问服务器可能是一个好主意。这将显示证书是否有问题,或者只是您的 iOS 设备上的配置文件有问题。

    【讨论】:

    • 谢谢,CA 证书配置文件似乎有问题。删除它并重新下载证书文件后,连接正常。我可能从错误的 SSL 格式文件安装了 CA 证书。只有 CA 证书的 PEM 文件似乎安装了正确的配置文件。
    猜你喜欢
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多