Tag: SSL

在iOS7 GM中收到SSL错误 – “AddTrust External CA Root”不受信任?

我在NSURLConnection类中突然从iOS7 GM收到SSL错误。 我无法访问我的任何API或WebView页面,并且是严重的紧急情况。 有人可以帮我吗? 错误如下: NSURLConnection / CFURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9813) 我查了一下错误,解释如下: errSSLNoRootCert = -9813,/ *证书链不通过根validation* / 我的域根证书(通过浏览器访问确认)是 “AddTrust External CA Root” 。 这是不太可信的,因为: 此根证书甚至列在“iOS5和6:受信任的根证书列表”中。 http://support.apple.com/kb/ht5012 这个错误从来没有出现过,直到iOS6,甚至直到iOS7 beta6。它突然出现在iOS7 GM。 我的浏览器告诉我这是一个可信的证书。 我的证书的到期date没有问题。 我想知道这是否是操作系统中的错误,或者是否需要购买不同根的证书,或者是否存在其他问题。 PS我没有代码在我的NSURLConnection处理身份validation的挑战。

validation返回码:20(无法获得本地签发人证书)

我遇到类似这样的问题: 生产环境中的Apple推送通知:无法获取本地颁发者证书,但是在本地计算机上。 我按照这个教程: http : //www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12,但在这一步 openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert PushChatCert.pem -key PushChatKey.pem 它说: (大量的数字和字母)validation返回码:20(无法获得本地发行者证书) 问题是什么? 谢谢

Swift iOS客户端证书authentication

我想要使​​用的Web服务需要客户端证书。 我怎样才能发送我的证书呢? 为了进一步阐述我不明白如何创buildSecIdentityRef 。 在NSURLConnection didReceiveAuthenticationChallenge我在ServerTrust之后得到了这个条件: else if challenge?.protectionSpace.authenticationMethod == NSURLAuthenticationMethodClientCertificate { var secIdent : SecIdentityRef = ????????? var certCred = NSURLCredential(identity: secIdent, certificates: [getClientCertificate()], persistence: NSURLCredentialPersistence.Permanent) challenge?.sender.useCredential(certCred, forAuthenticationChallenge: challenge!) } getClientCertificate方法: func getClientCertificate() -> SecCertificateRef { let mainBundle : NSBundle = NSBundle.mainBundle() var mainBund = mainBundle.pathForResource("iosClientCert", ofType: "cer") //exported the cert in der format. […]

是否可以创build多个SSL证书的提供商发送APN到相同的应用程序?

我意识到有一个问题允许多个服务器发送推送通知到相同的应用程序使用相同的SSL证书,但我的问题是不同的。 假设单个iOS应用程序的开发者希望允许多个提供者将推送通知发送到他的应用程序,但是想要控制哪个提供者有权将APN发送到他的应用程序(并且能够从任何一个撤销该特权)。 如果所有提供者都有相同的证书,为了阻止其中一个发送APN,他必须全部阻止(通过撤销推送SSL证书,并获得一个新的证书)。 对于同一个应用程序,是否可以从Apple获取多个推送SSL证书? 这样可以为每个提供者分配一个唯一的证书,这样就可以阻止一个提供者,而不会阻塞其他提供者。 在Apple Provisioning Portal上,似乎没有可能为相同的应用程序和相同的环境(开发/生产)创build多个Push SSL证书,但是我想确定它是否无法完成。

从http切换到https。 无效的证书

我有一个应用程序,连接到我的家庭路由器的Web界面。 我想转换这个使用https而不是只是http。 我最初使用ASIHttpRequest ,但因为它不再支持我切换到AFNetworking 。 问题是,每当我尝试连接,我得到这个错误消息: _block_invoke_0220 [Line 243] ERROR: Error Domain=NSURLErrorDomain Code=-1202 "The certificate for this server is invalid. You might be connecting to a server that is pretending to be “192.168.1.1” which could put your confidential information at risk." UserInfo=0x9792ad0 {NSErrorFailingURLStringKey=https://192.168.1.1/Info.live.htm, NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, NSErrorFailingURLKey=https://192.168.1.1/Info.live.htm, NSLocalizedDescription=The certificate […]

使用自签名证书在iOS 9中制作HTTPS请求

我想使用自签名证书向自定义服务器发出HTTPS请求。 我正在使用NSURLConnection类和处理身份validation的挑战,但始终在控制台中收到错误消息: NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802) 那么方法“connection:didFailWithError:”被调用,出现以下错误: Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." UserInfo={NSURLErrorFailingURLPeerTrustErrorKey=<SecTrustRef: 0x150094100>, NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9802, NSErrorPeerCertificateChainKey=<CFArray 0x1500ddd90 [0x19f6dab68]>{type = immutable, count = 1, values = ( 0 : <cert(0x14e6fb370) s: […]

在iOS中,如何使用https在服务器上使用自签名证书连接到服务器?

我正在开发的iOS 5,真的不想使用un-ARCed代码,所以我select自己实现而不是使用AFNetworking。 这也可能是一个大问题,所以我把它分成两个小部分。 1)在iOS 5中使用https连接到服务器。我使用从“iOS 5 Programming Pushing the Limits”中提取的代码。 因为我正在为iOS 5开发,所以我不使用我的项目中的弃用方法。 “RNSecTrustEvaluateAsX509”是一种将证书重新评估为简单的X.509证书而不是SSL握手的一部分的方法。 – (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge { NSURLProtectionSpace *protSpace = challenge.protectionSpace; SecTrustRef trust = protSpace.serverTrust; SecTrustResultType result = kSecTrustResultFatalTrustFailure; OSStatus status = SecTrustEvaluate(trust, &result); if (status == errSecSuccess && result == kSecTrustResultRecoverableTrustFailure) { SecCertificateRef cert = SecTrustGetCertificateAtIndex(trust, 0); CFStringRef subject = SecCertificateCopySubjectSummary(cert); NSLog(@"Trying […]

如何使用iOS 7的NSURLSession接受自签名的SSL证书

我有以下代码(快速实施): func connection(connection: NSURLConnection, canAuthenticateAgainstProtectionSpace protectionSpace: NSURLProtectionSpace) -> Bool { return protectionSpace.authenticationMethod == NSURLAuthenticationMethodServerTrust } func connection(connection: NSURLConnection, didReceiveAuthenticationChallenge challenge: NSURLAuthenticationChallenge) { if challenge.protectionSpace.authenticationMethod == NSURLAuthenticationMethodServerTrust { if challenge.protectionSpace.host == "myDomain" { let credentials = NSURLCredential(forTrust: challenge.protectionSpace.serverTrust) challenge.sender.useCredential(credentials, forAuthenticationChallenge: challenge) } } challenge.sender.continueWithoutCredentialForAuthenticationChallenge(challenge) } 它在iOS 8.x中完美工作 , 但不起作用的iOS 7.x在iOS 7.x我有错误: NSURLConnection / CFURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9813) 任何想法? […]

在WKWebView中允许未经validation的SSL证书

我试图在WKWebView for iOS 8中加载带有自签名证书的HTTPS URL,并且一直保持失败状态。 用于UIWebView的解决方法(使用NSUrlRequest的setAllowsAnyHTTPSCertificate)似乎不起作用。 有谁知道任何解决方法? 我不需要一个适用于AppStore的解决scheme,因为我只需要在开发阶段而不是在生产阶段访问自签名证书站点,但这对于开发和testing服务器实例来说确实是一个问题。 先谢谢你。

我怎样才能生成在iPhone推送通知pem文件?

使用此链接生成推送通知的Pem文件,但我不明白以下步骤… 在服务器上安装SSL证书和密钥 您应该将之前获得的SSL分发证书和私有密钥安装在运行提供商代码的服务器计算机上,并从中连接到沙箱或生产版本的APN。 为此,请完成以下步骤: 打开“钥匙串访问”实用程序,然后单击左窗格中的“我的证书”类别。 find您要安装的证书并公开其内容。 你会看到一个证书和一个私钥。 select证书和密钥,select文件>导出项目,然后将其导出为个人信息交换(.p12)文件。 以Ruby和Perl等语言实现的服务器通常能够更好地处理Personal Information Exchange格式的证书。 要将证书转换为此格式,请完成以下步骤: 在KeyChain Access中,select证书并selectFile> Export Items。 select个人信息交换(.p12)选项,select一个保存位置,然后单击保存。 启动terminal应用程序并在提示后input以下命令:openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes。 将.pem证书复制到新计算机并将其安装在适当的位置。