隨着互聯網的發展,網站全面 https 化已經愈來愈被重視,作爲 App 開發人員,從一開始就讓 API 都走 SSL 也是十分必要的。可是光這樣就足夠了嗎?api
-----BEGIN CERTIFICATE----- MIIG4jCCBcqgAwIBAgIQDsAf+l9f2W2Jkl9C21bgSjANBgkqhkiG9w0BAQsFADBE MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMU .... -----END CERTIFICATE-----而後在命令行中使用 OpenSSL 工具鏈轉換格式爲 DER ( iOS 只能支持這個格式,注意!):
openssl x509 -outform der -in cert.pem -out cert.der將文件添加到 Xcode 工程中去。若是使用 AFNetworking,那麼實現將比較簡單,下面以 AFNetworking 爲例:
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:@"https://api.foo.com"]; NSString *cert = [[NSBundle mainBundle] pathForResource:@"cert" ofType:@"der"]; NSData *data = [[NSFileManager defaultManager] contentsAtPath:cert]; AFSecurityPolicy *policy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate withPinnedCertificates:[NSSet setWithObjects:data, nil]]; manager.securityPolicy = policy;
...從代碼中能夠看到,能夠一次指定多個證書。
網易雲SSL證書服務提供雲上證書一站式生命週期管理,與全球頂級的數字證書受權機構(CA,Certificate Authority)和代理商合做,爲你的網站與移動應用實現 HTTPS 加密部署。網絡
本文來自網易雲社區,經做者譚歆受權發佈。運維
原文地址:iOS SSL Pinning 保護你的 API工具
更多網易研發、產品、運營經驗分享請訪問網易雲社區。 測試