中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

蘋(píng)果iOS APP配置HTTPS,iOS ATS安裝配置SSL證書(shū)

2019-06-11    來(lái)源:

容器云強(qiáng)勢(shì)上線(xiàn)!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

蘋(píng)果iOS APP配置HTTPS,iOS ATS安裝配置SSL證書(shū)!

1. 背景

2017年1月1日起,蘋(píng)果AppStore中的所有App都必須啟用 App Transport Security(ATS)安全功能。App TransportSecurity(應(yīng)用程序安全傳輸),簡(jiǎn)稱(chēng) ATS,是蘋(píng)果在 iOS 9 中首次推出的一項(xiàng)隱私安全保護(hù)功能,啟用ATS后,它會(huì)屏蔽明文HTTP資源加載,強(qiáng)制App通過(guò)HTTPS連接網(wǎng)絡(luò)服務(wù),通過(guò)傳輸加密保障用戶(hù)數(shù)據(jù)安全。ATS在 iOS 9 中是默認(rèn)開(kāi)啟的,但開(kāi)發(fā)者仍然可以選擇關(guān)閉 ATS,讓自己的應(yīng)用通過(guò) HTTP 連接傳輸數(shù)據(jù)。但從2017年1月1日起,這招將行不通了,所有提交到 App Store 的App必須強(qiáng)制開(kāi)啟 ATS。

2. 影響

100%被拒的情況:

  • NSAllowsArbitraryLoads,打開(kāi)此開(kāi)關(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í)只要使用蘋(píng)果的AV Foundation框架加載內(nèi)容,就可以無(wú)視ATS。
  • App的內(nèi)容如果有來(lái)自已知的第三方,不過(guò)最好的做法是和第三方溝通下,敦促他們所有傳輸都使用TLS1.2加密。
  • App的內(nèi)容來(lái)自于不可知的第三方,比如說(shuō)允許用戶(hù)通過(guò)App訪(fǎng)問(wèn)任意網(wǎng)站,比如說(shuō)瀏覽器app,可以忽視ATS。

3. 為什么要用 HTTPS

簡(jiǎn)單地說(shuō),HTTP是明文協(xié)議,通過(guò)該協(xié)議傳輸?shù)臄?shù)據(jù)處在被竊聽(tīng)、篡改、冒充這三大風(fēng)險(xiǎn)中,已經(jīng)是非常不安全的傳輸協(xié)議。HTTPS是加密協(xié)議,就是在HTTP的基礎(chǔ)上開(kāi)啟一條SSL加密通道,讓原本明文“裸奔”的數(shù)據(jù),從加密通道中密文傳輸,保證了數(shù)據(jù)傳輸?shù)陌踩浴?/p>

蘋(píng)果iOS APP配置HTTPS,iOS ATS安裝配置SSL證書(shū)

目前,全球互聯(lián)網(wǎng)正在進(jìn)行從HTTP到HTTPS的大遷移,蘋(píng)果一向非常關(guān)注用戶(hù)隱私安全,在執(zhí)行安全策略方面,態(tài)度也是非常強(qiáng)硬,實(shí)施強(qiáng)制HTTPS加密勢(shì)在必行。

4. 準(zhǔn)備工作

申請(qǐng)一個(gè)SSL證書(shū)

SSL證書(shū)按驗(yàn)證的類(lèi)別可分:

DV SSL證書(shū)(域名驗(yàn)證型):只驗(yàn)證域名所有權(quán),適合個(gè)人網(wǎng)站、博客等站點(diǎn)使用;

OV SSL證書(shū)(企業(yè)驗(yàn)證型):驗(yàn)證網(wǎng)站所屬單位身份,適合企業(yè)級(jí)用戶(hù)使用;

EV SSL證書(shū)(擴(kuò)展驗(yàn)證型):擴(kuò)展驗(yàn)證網(wǎng)站所屬單位身份,這種證書(shū)在瀏覽器中會(huì)顯示醒目的綠色地址欄,可信度最高,適合需要用戶(hù)高度信任的企業(yè)級(jí)用戶(hù)使用。

蘋(píng)果iOS APP配置HTTPS,iOS ATS安裝配置SSL證書(shū)

西部數(shù)碼證書(shū)產(chǎn)品已經(jīng)上線(xiàn),支持蘋(píng)果iOS系統(tǒng)。

5. AFN 配置 HTTPS

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ù)

- (AFSecurityPolicy *)customSecurityPolicy {

// 先導(dǎo)入證書(shū)

NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"xxx" ofType:@"cer"];//證書(shū)的路徑

NSData *cerData = [NSData dataWithContentsOfFile:cerPath];

// AFSSLPinningModeCertificate 使用證書(shū)驗(yàn)證模式

AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];

// allowInvalidCertificates 是否允許無(wú)效證書(shū)(也就是自建的證書(shū)),默認(rèn)為NO

//validatesDomainName 是否需要驗(yàn)證域名,默認(rèn)為YES;

5.3.關(guān)于證書(shū)

從西部數(shù)碼CA獲取到HTTPS證書(shū)后,會(huì)得到一個(gè)有密碼的壓縮包文件,使用for other server里面的domain.crt的證書(shū)文件。

6. 后臺(tái)服務(wù)器配置HTTPS證書(shū)(Ngnix)

從西部數(shù)碼CA證書(shū)文件壓縮包中,打開(kāi)其中的for Nginx 文件可以看到 2 個(gè)文件,包括公鑰、私鑰。

打開(kāi)Nginx安裝目錄下conf目錄中的nginx.conf文件找到

#HTTPS server

#

#server {

# listen 443;

# server_name localhost;

# ssl on;

# ssl_certificate cert.pem;

# ssl_certificate_key cert.key;

# ssl_session_timeout 5m;

# ssl_protocols SSLv2 SSLv3 TLSv1;

# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;

# ssl_prefer_server_ciphers on;

# location / {

# root html;

# index index.html index.htm;

# }

#}

將其修改為 :

server {

listen 443;

server_name localhost;

ssl on;

ssl_certificate sslkey/public.cer; (證書(shū)公鑰)

ssl_certificate_key sslkey/private.key; (證書(shū)私鑰)

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;

# }

#}

將其修改為 :

server {

listen 443;

server_name localhost;

ssl on;

ssl_certificate sslkey/public.cer; (證書(shū)公鑰)

ssl_certificate_key sslkey/private.key; (證書(shū)私鑰)

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。

通過(guò)https方式訪(fǎng)問(wèn)您的站點(diǎn),確認(rèn)站點(diǎn)證書(shū)安裝配置正確。

標(biāo)簽: app ssl證書(shū) https ats

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:HTTPS 正在成為網(wǎng)站的標(biāo)配,你的獨(dú)立站加密了嗎?

下一篇:關(guān)于HTTP2和HTTPS,這些你必須要知道