為您解碼網(wǎng)站建設(shè)的點(diǎn)點(diǎn)滴滴
發(fā)表日期:2018-03 文章編輯:小燈 瀏覽次數(shù):2227
您的APP啟用HTTPS了嗎?距離2017年1月1日"蘋果iOS強(qiáng)制要求HTTPS連接"還有不到1個(gè)月的時(shí)間,是否支持HTTPS直接影響APP能否在蘋果商店順利上架。本文將幫助您更快實(shí)施HTTPS!
2017年1月1日起,蘋果AppStore中的所有App都必須啟用 App Transport Security(ATS)安全功能。App TransportSecurity(應(yīng)用程序安全傳輸),簡(jiǎn)稱 ATS,是蘋果在 iOS 9 中首次推出的一項(xiàng)隱私安全保護(hù)功能,啟用ATS后,它會(huì)屏蔽明文HTTP資源加載,強(qiáng)制App通過HTTPS連接網(wǎng)絡(luò)服務(wù),通過傳輸加密保障用戶數(shù)據(jù)安全。ATS在 iOS 9 中是默認(rèn)開啟的,但開發(fā)者仍然可以選擇關(guān)閉 ATS,讓自己的應(yīng)用通過 HTTP 連接傳輸數(shù)據(jù)。但從2017年1月1日起,這招將行不通了,所有提交到 App Store 的App必須強(qiáng)制開啟 ATS。
100%被拒的情況:
NSAllowsArbitraryLoads,打開此開關(guān)相當(dāng)于關(guān)閉ATS
NSExceptionAllowsInsecureHTTPLoads,使用自有網(wǎng)站的HTTP鏈接
NSExceptionMinimumTLSVersion,使用自有網(wǎng)站低于TLS1.2標(biāo)準(zhǔn)的HTTPS鏈接
以下幾種情況是特例,不會(huì)被拒:
App提供流媒體服務(wù),媒體源已經(jīng)對(duì)內(nèi)容進(jìn)行了加密,這時(shí)只要使用蘋果的AV Foundation框架加載內(nèi)容,就可以無視ATS;
App的內(nèi)容如果有來自已知的第三方,不過最好的做法是和第三方溝通下,敦促他們所有傳輸都使用TLS1.2加密。
App的內(nèi)容來自于不可知的第三方,比如說允許用戶通過App訪問任意網(wǎng)站,比如說瀏覽器app,可以忽視ATS。
簡(jiǎn)單地說,HTTP是明文協(xié)議,通過該協(xié)議傳輸?shù)臄?shù)據(jù)處在被竊聽、篡改、冒充這三大風(fēng)險(xiǎn)中,已經(jīng)是非常不安全的傳輸協(xié)議。HTTPS是加密協(xié)議,就是在HTTP的基礎(chǔ)上開啟一條SSL加密通道,讓原本明文“裸奔”的數(shù)據(jù),從加密通道中密文傳輸,保證了數(shù)據(jù)傳輸?shù)陌踩浴?/p>
申請(qǐng)一個(gè)SSL證書
SSL證書按驗(yàn)證的類別可分:
DV SSL證書(域名驗(yàn)證型):只驗(yàn)證域名所有權(quán),適合個(gè)人網(wǎng)站、博客等站點(diǎn)使用;
OV SSL證書(企業(yè)驗(yàn)證型):驗(yàn)證網(wǎng)站所屬單位身份,適合企業(yè)級(jí)用戶使用;
EV SSL證書(擴(kuò)展驗(yàn)證型):擴(kuò)展驗(yàn)證網(wǎng)站所屬單位身份,這種證書在瀏覽器中會(huì)顯示醒目的綠色地址欄,可信度最高,適合需要用戶高度信任的企業(yè)級(jí)用戶使用。
SSL證書類別
沃通新證書產(chǎn)品已經(jīng)上線,支持蘋果iOS系統(tǒng),新品推廣期間申請(qǐng)沃通超真SSL Pre通配型證書可享8折優(yōu)惠,名額有限先到先得。
5.1.項(xiàng)目中的網(wǎng)絡(luò)交互都是基于AFN,要求AFN版本在3.0及其以上;
5.2.代碼部分
設(shè)置AFN請(qǐng)求管理者的時(shí)候 添加 https ssl 驗(yàn)證。
/**
// 1.獲得請(qǐng)求管理者
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
// 2.加上這個(gè)函數(shù),https ssl 驗(yàn)證。
[manager setSecurityPolicy:[self customSecurityPolicy]];
// https ssl 驗(yàn)證函數(shù)
// 先導(dǎo)入證書
NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"xxx" ofType:@"cer"];//證書的路徑
NSData *cerData = [NSData dataWithContentsOfFile:cerPath];
// AFSSLPinningModeCertificate 使用證書驗(yàn)證模式
AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
// allowInvalidCertificates 是否允許無效證書(也就是自建的證書),默認(rèn)為NO
//validatesDomainName 是否需要驗(yàn)證域名,默認(rèn)為YES;
**/
5.3.關(guān)于證書
從沃通獲取到HTTPS證書后,會(huì)得到一個(gè)有密碼的壓縮包文件,使用for other server里面的domain.crt的證書文件。
6.后臺(tái)服務(wù)器配置HTTPS證書(Ngnix)
從沃通證書文件壓縮包中,打開其中的for Nginx 文件可以看到 2 個(gè)文件,包括公鑰、私鑰。
打開Nginx安裝目錄下conf目錄中的nginx.conf文件找到
將其修改為 :
server {
listen 443;
server_name localhost;
ssl on;
ssl_certificate sslkey/public.cer; (證書公鑰)
ssl_certificate_key sslkey/private.key; (證書私鑰)
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1TLSv1.2;
ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
保存退出,并重啟Nginx。
通過https方式訪問您的站點(diǎn),確認(rèn)站點(diǎn)證書安裝配置正確。