如何访问Objective C中的服务器证书信息?

时间:2012-02-06 13:41:29

标签: objective-c certificate nsurlconnection

对于我的应用程序,我有一个受信任的服务器证书,我想访问我的代码中的证书信息。我的目的是检查url主机名和证书主机名是否匹配。如果它们匹配,那么我将建立连接,否则我将抛出错误。

1 个答案:

答案 0 :(得分:1)

  1. 您使用NSURLConnectionDelegate方法-connection:canAuthenticateAgainstProtectionSpace:-connection:didReceiveAuthenticationChallenge:服务器信任保护空间中接收身份验证质询。这就是您有机会检查证书的地方。

  2. 不要只检查主机名是否匹配!任何人都可以为任何服务器颁发证书,甚至还为*.*.com和类似的通配符颁发了证书。您需要决定是否信任使用证书颁发的身份:这就是为什么称为服务器信任身份验证。

  3.   

    我如何信任凭证书发出的身份

    您需要评估服务器信任。您的策略用于信任证书的内容不是我想要预测的内容,但是您使用API​​评估信任的方式在Apple的Certificate, Key and Trust Services programming guide中有所涵盖。

      

    如何访问证书中的某些信息

    可用的API记录在Certificate, Key and Trust Services reference中。请注意,iOS上没有很多选项可用于从证书中提取数据 - 当然不会像Mac上那样多。