iOS應用將強制使用HTTPS安全加密-afn配置https(190926更新)


WWDC 2016蘋果開發者大會上,蘋果在講解全新的iOS10中提到了數據安全這一方面,並且蘋果宣布iOS應用將從2017年1月起啟用名為App Transport Security的安全傳輸功能。

2017年所有iOS應用必須支持ATS安全標准,將強制使用HTTPS安全連接;

為什么強制使用ATS 安全標准?

ATS 安全標准是蘋果在發布 iOS 9 和 OS X EI Capitan 系統時發布的,這一標准通過強行推動一系列安全實際操作,從而積極促進安全性,同時還要求網絡請求必須在一個安全的鏈接上傳輸,當開啟 ATS 之后,網絡傳輸將自動通過 HTTPS 協議傳輸而不是 HTTP 協議。啟用HTTPS網絡連接之后,數據傳輸的安全性將大幅提示,不容易被黑客攔截破譯。 

強制使用ATS 安全標准將會在 2017 年 1 月 1 日開始,蘋果公司稱,HTTPS安全標准將會確保我們的個人信息免遭意外泄露,確保應用默認遵守行為安全規范。

什么是HTTPS?

HTTPS就是http+SSL,簡單地說就是在http協議的基礎上開啟一條SSL加密通道,讓原本“裸奔”的數據,從加密通道中密文傳輸,保證了數據傳輸的安全性,服務器安裝SSL證書,就可以激活SSL加密通道,實現https加密傳輸。如今,ATS 安全標准都會在蘋果的開發工具打開,不過很多開發商已經停止使用安全功能。要知道如今 App Store 已經擁有超過 200 萬個應用,而應用的下載量早已經超過了 1300 億次,很顯然,一個安全的 App Store 是我們每個人都非常需要。建議開發者不要簡單地禁用ATS,而應該升級服務器的配置支持ATS,為用戶提供更安全的服務。

天威誠信SSL證書助您快速升級https

APP應用按ATS要求升級為HTTPS其實並不復雜,天威誠信可提供Symantec 旗下全線數字證書產品。天威誠信擁有15年SSL認證經驗, 2000年天威誠信將Symantec證書業務引入中國,開始為中國區客戶提供SSL認證服務。是symantec在中國區合作時間最長、合作范圍最廣、合作層級最高的白金戰略合作伙伴。天威誠信擁有最優秀的本土化服務團隊, 可為您提供7×24小時專業技術服務。讓您享受到最快捷,最全面,最安心的認證服務。

 

我的項目最近(1909)也要配置https

現在把過程記錄,以方便大家參考

1.后台會給你一個.crt 證書文件 或者 直接給一個 .cer 文件

如果給的是.crt 那么需要將 .crt 雙擊放入鑰匙串,導出.cer  再將鑰匙串里面的.crt 刪除

2. 將生成的.cer 拖入到工程的你想放入的文件夾的下面,Build Phases->Copy Bundle Resources中加入剛才的證書

3. afn的代碼中需要加入這些

 

    配置https的時候改的這句

        NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];

        _httpsessionManager = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:BasePathScope] sessionConfiguration:configuration];//比如你的 域名是www.baidu.com 那么  BasePathScope 要寫成  https://www.baidu.com

        [_httpsessionManager setSecurityPolicy:[self customSecurityPolicy]];

 

+ (AFSecurityPolicy *)customSecurityPolicy {

    

    // 先導入證書 證書由服務端生成,具體由服務端人員操作

    NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"XXXX" ofType:@"cer"];//證書的路徑 xx.cer

    // AFSSLPinningModeCertificate 使用證書驗證模式

    AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];

    // allowInvalidCertificates 是否允許無效證書(也就是自建的證書),默認為NO

    // 如果是需要驗證自建證書,需要設置為YES

    securityPolicy.allowInvalidCertificates = YES;

    

    //validatesDomainName 是否需要驗證域名,默認為YES;

    //假如證書的域名與你請求的域名不一致,需把該項設置為NO;如設成NO的話,即服務器使用其他可信任機構頒發的證書,也可以建立連接,這個非常危險,建議打開。

    //置為NO,主要用於這種情況:客戶端請求的是子域名,而證書上的是另外一個域名。因為SSL證書上的域名是獨立的,假如證書上注冊的域名是www.google.com,那么mail.google.com是無法驗證通過的;當然,有錢可以注冊通配符的域名*.google.com,但這個還是比較貴的。

    //如置為NO,建議自己添加對應域名的校驗邏輯。

    securityPolicy.validatesDomainName = NO;

    

    securityPolicy.pinnedCertificates = [[NSSet alloc] initWithObjects:cerData, nil];

    return securityPolicy;

}

 

如此一來我的項目就好了。  並沒有用到info里面配置白名單

 

 

參考鏈接

https://www.jianshu.com/p/8c128d9c9681

https://www.jianshu.com/p/c8619181907c

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM