Cocoa 为SFCertificateTrustPanel提供消息和信息文本

Cocoa 为SFCertificateTrustPanel提供消息和信息文本,cocoa,https,ssl-certificate,Cocoa,Https,Ssl Certificate,使用SFCertificateTrustPanel显示SecTrustRef对象的结果时,默认为消息: 证书信任验证期间发生故障。请为需要更新的证书指定信任设置 与Safari的实现相比,这似乎相当模糊和缺乏: Safari无法验证网站“example.com”的身份。 此网站的证书无效。您可能正在连接一个冒充“example.com”的网站,这可能会使您的机密信息处于危险之中。是否仍要连接到该网站 如果让nsurl连接或类似连接失败,则NSError包含以下内容: NSLocalizedDes

使用
SFCertificateTrustPanel
显示
SecTrustRef
对象的结果时,默认为消息:

证书信任验证期间发生故障。请为需要更新的证书指定信任设置

与Safari的实现相比,这似乎相当模糊和缺乏:

Safari无法验证网站“example.com”的身份。

此网站的证书无效。您可能正在连接一个冒充“example.com”的网站,这可能会使您的机密信息处于危险之中。是否仍要连接到该网站

如果让
nsurl连接
或类似连接失败,则
NSError
包含以下内容:

NSLocalizedDescription = "The certificate for this server is invalid. You might be connecting to a server that is pretending to be "example.com" which could put your confidential information at risk.";
NSLocalizedRecoverySuggestion = "Would you like to connect to the server anyway?";

所以我似乎有几个选择:

  • 保留默认消息
  • 生成我自己的消息文本
  • 等待连接失败,然后根据产生的错误构造面板,并在用户选择时重试连接
  • 还有别的吗

  • 是否有我错过的选项4?如果没有,请选择2项中的哪一项。三,。那更好吗?我担心2。如果不考虑特定的边缘情况,很容易产生错误的消息。

    您尝试过吗?与其
    SecTrustResultType
    s5相比,它的
    OSStatus
    返回代码提供了大约40多个状态代码。@t我的理解是,如果评估过程失败(例如,由于缺少internet连接),该函数将只返回
    errSecSuccess
    以外的内容。它不会报告有关给定证书无效原因的信息。