总结:努力在我的iOS模拟器上通过SSL握手。
我正试图通过我的iOS模拟器Xcode 7.2模拟器9.2上的SSL握手。我已从应用程序网页(URL)中提取.cer文件并手动安装在模拟器中,但未能在模拟器中通过SSL握手。
背景资料:
我的尝试。 (两者都是在公司WIFI上尝试的)
非常感谢任何建议
路
答案 0 :(得分:0)
我遇到类似的问题,让我的应用程序使用我的SSL证书,并通过以下方式解决它:
将.cer文件包含在xcode中的apps目录中。
使用Alamofire和以下代码固定和完成SSL握手
let hatchliCert = "nameOfCert"
var urlSession: NSURLSession!
var serverTrustPolicy: ServerTrustPolicy!
var serverTrustPolicies: [String: ServerTrustPolicy]!
var afManager: Manager!
func configureAlamoFireSSLPinningWithCertificateData(certificateData: NSData) {
print("entering alamo ssl pinning")
let pathToCert = NSBundle.mainBundle().pathForResource(hatchliCert, ofType: "cer")
let localCertificate:NSData = NSData(contentsOfFile: pathToCert!)!
self.configureAlamoFireSSLPinningWithCertificateData(localCertificate)
self.serverTrustPolicy = ServerTrustPolicy.PinCertificates(
// Getting the certificate from the certificate data
certificates: [SecCertificateCreateWithData(nil, certificateData)!],
// Choose to validate the complete certificate chain, not only the certificate itself
validateCertificateChain: true,
// Check that the certificate matches the host who provided it
validateHost: true
)
self.serverTrustPolicies = ["www.nameOfWebsite.com": self.serverTrustPolicy!]
self.afManager = Manager(
configuration: NSURLSessionConfiguration.defaultSessionConfiguration(),
serverTrustPolicyManager: ServerTrustPolicyManager(policies: self.serverTrustPolicies)
)
}
这对我有用,但看起来你的公司安全情况略有不同。希望它有所帮助!