使用自签名证书https卡

我有一个自签名证书的服务器。 我想用httpsforms将我的设备连接到服务器。 我听说我必须接受这个关系。 但我不知道如何。 我有一个自签名证书,因为它是一个testing服务器。 但我想用httpsforms访问它? 当我尝试访问https我有一个错误:

SURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) 

然后它是一个自签名证书。

有人可以帮助我吗?

默认情况下,Cocoa在证书无效时拒绝所有的SSL连接。

但是,您也可以强制他们接受无效的证书。 该方法取决于你正在使用的库/框架。 例如:

  • 对于NSURLConnection,请检查这个答案 。
  • 对于ASIHTTPRequest,您需要将属性validatesSecureCertificate设置为NO。
  • 对于AFNetworking,您可以检查在此页面中使用的代码
  • 对于CFNetwork,低级别的Foundation框架,请检查此示例代码 。
  • 对于您正在使用的SURLConnection,您需要遵循相同的NSURLConnection说明。 确实,SURLConnection只是NSURLConnection的一个子类。

重要的提示:
上面的代码,接受任何一种SSL证书,即使是无效的,都是一个严重的安全风险。 基本上,它使整个SSL无用。 因此,如果您确实需要使用SSL连接进行testing,则只能在开发过程中使用该代码。
另请注意,苹果将拒绝任何提交给接受无效SSL证书的App Store的应用程序。

证书configuration:

您必须在设备上安装自签名证书CA ,以便设备信任它,然后只有设备信任SSL连接。

在安装自签名证书的情况下,请确保URL的 域名 与证书的 通用名称相同。

如果没有域名,那么IP地址是好的。

证书安装:

您可以将其托pipe在Web服务器上,然后尝试从Safari浏览器访问它,然后iOS会提示在iOS设备中安装证书

证书创build:

以下是创build自签名证书的方法,以便您可以填写所有的详细信息,并在Web服务器中进行托pipe。

 openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 1001 -nodes 

(inputCommon Name的值时请注意)