【发布时间】:2019-04-05 15:09:18
【问题描述】:
情况:我们无法更新客户端设备上的der 文件。我们网络服务器上的 SSL 证书即将到期。
是否可以在不更换客户端证书的情况下更新服务器的 SSL 证书?
我们希望遵循本指南:https://www.smashingmagazine.com/how-to-issue-a-new-ssl-certificate-with-an-old-ssl-key/
但是,我们不确定它是否有帮助。
问题是:
der 文件(在客户端)是否仅包含公钥,并且使用上面链接中描述的技术更新 SSL 证书是安全的(保持相同的 pub/private 密钥)。
在不替换der 文件的情况下,它可以在客户端设备上运行吗?或者der文件不仅包含SSL证书的公钥,还包含其他一些信息?
【问题讨论】:
-
不清楚客户端设备上的证书是什么?客户端认证证书?服务器证书的公共副本?你能详细说明一下吗?
-
这是一个
der文件,用于在 iOS 应用程序中建立 SSL 固定。我认为如果服务器的证书是公共副本。如果您在 Firefox 中打开网站并下载证书 - 它是完全相同的文件。 -
如何进行固定验证?基于完全匹配(比较证书的二进制副本时)还是仅基于密钥匹配(仅比较公钥部分时)?
-
我将尝试从代码中了解自己,但快速响应是: // 建立锚定在我们捆绑证书上的信任链。 CFArrayRef certArrayRef = CFArrayCreate(NULL, (void *)&cert, 1, NULL); SecTrustRef serverTrust = protectionSpace.serverTrust; SecTrustSetAnchorCertificates(serverTrust, certArrayRef); // 验证信任。 SecTrustResultType 信任结果; SecTrustEvaluate(serverTrust, &trustResult);
标签: ssl ssl-certificate x509 public-key der