App審核被拒Ipv6 相關(guān),及HTTPS證書問(wèn)題(單向認(rèn)證)

App審核被拒——Ipv6相關(guān)


? ? ? ? 首先,檢測(cè)App是否支持IPv6。

? ? ? ? 教程1:連網(wǎng)線建立ipv6測(cè)試環(huán)境。

? ? ? ? 教程2:無(wú)網(wǎng)線建立ipv6測(cè)試環(huán)境

? ? ? ? 官方文檔:連網(wǎng)線建立ipv6測(cè)試環(huán)境

? ? ? ? 若是測(cè)試通過(guò),則說(shuō)明客戶端應(yīng)用在IPv6網(wǎng)絡(luò)下,是(基本)沒(méi)有問(wèn)題的。但是此操作無(wú)法驗(yàn)證服務(wù)器能夠?qū)Pv6網(wǎng)絡(luò)做出正確的響應(yīng)。

? ? ? ? 若是IPv6測(cè)試環(huán)境測(cè)試沒(méi)有通過(guò),解決方案:

? ? ? ? ① 更換第三方的SDK至最新版本。支付寶支付,微信支付,第三方登錄、分享,環(huán)信等。

? ? ? ? ② 老版本的網(wǎng)絡(luò)請(qǐng)求函數(shù)。ASI,AFN。注意:確認(rèn)IPv6搭建連接是否正確,所有功能是否在IPv6下都測(cè)試了,App需安裝在iPhon6以上的機(jī)器測(cè)試,iPhon5連不上IPv6 wifi,搭建IPv6可以使用Mac連接網(wǎng)線(教程1)或Mac連無(wú)線(教程2)。

? ? ? ? ③ socket請(qǐng)求適配IPv6,我們這暫時(shí)沒(méi)有使用這方面,可略過(guò)此操作。參考

? ? ? ? ④?IPv6下,測(cè)試App所有界面,哪里網(wǎng)絡(luò)連接失敗就換或者改對(duì)應(yīng)的代碼。

? ? ? ? 一般,這些操作后,App通過(guò)IPv6測(cè)試是沒(méi)問(wèn)題的。

? ? ? ?還需要檢測(cè)服務(wù)器是否支持IPv6。打開(kāi)終端,執(zhí)行dig +nocmd +nostats 域名 AAAA


檢測(cè)服務(wù)器是否支持ipv6

? ? ? ? 若執(zhí)行后,status對(duì)應(yīng)的碼是NOERROR,則基本沒(méi)問(wèn)題。如果返回的響應(yīng)是SERVFAIL,在已經(jīng)驗(yàn)證了客戶端沒(méi)有問(wèn)題前提下,剩下的就是運(yùn)維、后臺(tái)的工作了,需要服務(wù)器更改DNS配置,直到穩(wěn)定返回NOERROR。

? ? ? ? 以上操作跑一遍后,提交審核,還是并不能保證審核百分之百能過(guò)。對(duì)策:

? ? ? ? ① 運(yùn)維/服務(wù)器參考:針對(duì)蘋果官方ipv6審核的綜合解決方案?及內(nèi)部鏈接;

? ? ? ? ② 拍視頻給審核人員,視頻內(nèi)容需詳細(xì):搭建環(huán)境的過(guò)程(上面教程1或者2的操作過(guò)程)。手機(jī)打開(kāi)飛行模式,正確連接電腦wifi的過(guò)程,所有標(biāo)記搭建IPv6環(huán)境搭建成功的畫面,App所有界面(都可以加載數(shù)據(jù))運(yùn)行良好的狀態(tài)的畫面。視頻展示給審核人員的方法:① 視頻傳到y(tǒng)outwobe,把視頻鏈接Reply給蘋果。② 直接Reply視頻文件壓縮打包給蘋果。我在用戶端1.0版提交審核時(shí)使用過(guò)這個(gè)方法,審核通過(guò)(注:我們的用戶端1.0被拒,蘋果給出的不是IPv6)。

? ? ? ? 客戶端代碼部分是咱們開(kāi)發(fā)者自己解決。至于服務(wù)器端無(wú)法解決,有必要找專業(yè)人員參與。

? ? ? ? 最后,IPv6的整體流程:

? ? ? ? 1)先搭建IPv6測(cè)試環(huán)境;

? ? ? ? 2)確保服務(wù)器支持IPv6;

? ? ? ? 3)再把每個(gè)界面點(diǎn)一下,觀察所有的網(wǎng)絡(luò)是否有異常,哪里不會(huì)(對(duì))點(diǎn)(修改或者更換)哪里;

? ? ? ? 4)服務(wù)器端無(wú)法解決,有必要找專業(yè)人員參與。


? ? ? ? ?一個(gè)情況,我們的用戶端App 2.0第一次提交審核被拒,蘋果給出原因IPv6。情況分析:2016年12月31日提交審核,在提交審核之前,測(cè)試所有流程均可跑通。2017年1月6日,蘋果給出審核結(jié)果,是IPv6,登錄界面無(wú)法登錄進(jìn)入App。測(cè)試后發(fā)現(xiàn):在iOS10.0的真機(jī)上,所有流程還是沒(méi)問(wèn)題。在10.3的模擬器或者真機(jī)上出現(xiàn)問(wèn)題。糾結(jié)一番后,向后臺(tái)要來(lái)證書,xxx.crt。需要把這個(gè).crt文件轉(zhuǎn)成.cer或者.der文件。打開(kāi)終端:

.crt轉(zhuǎn).der:openssl x509 –in xxx.crt文件路徑-out xxx.der文件路徑-outform DER

.crt轉(zhuǎn).cer:openssl x509 -in xxx.crt文件路徑-out xxx.cer文件路徑-outform DER

當(dāng)我把證書轉(zhuǎn)換后,在“鑰匙串訪問(wèn)”中查看此證書,可以看到:

服務(wù)器證書

? ? ? ? 也就是由不被信任的簽發(fā)者簽名頒發(fā)的。查一下StartCom,這是被沃通收購(gòu)的機(jī)構(gòu)(http://digi.163.com/16/1102/09/C4RVPJA1001687H3.html)。沃通和StartCom由于涉及到一些非法簽名的案例,先后被蘋果和谷歌取消信任,等待其悔過(guò)自新……至于什么時(shí)候能恢復(fù)信任,還是未知數(shù);

? ? ? ? 把請(qǐng)求的https://ssl.heartbook.com.cn放到Safari里,第一次有“此網(wǎng)址不被信任,是否繼續(xù)”的提示;

? ? ? ?另外,檢測(cè)HTTPS服務(wù)器是否符合ATS特性中的要求:終端執(zhí)行:nscurl --ats-diagnostics --verbose?https://xxx.com

ATS特性檢測(cè)截圖 1


ATS特性檢測(cè)截圖 2

? ? ? ? 截圖是檢測(cè)我們的HTTPS服務(wù)器,TLSv1.0 /1.1 /1.2,result均為FAIL。原因:不受信任的證書,通不過(guò)ATS的檢測(cè)。

? ? ? ? 那么,我們的用戶端App2.0審核被拒的原因,是服務(wù)器證書不被信任造成的。

? ? ? ? 解決此問(wèn)題的方法:

? ? ? ? ① 通過(guò)代碼來(lái)調(diào)整,信任服務(wù)器的證書(我的解決辦法是使用的這個(gè)方法)。個(gè)人覺(jué)得壞處是:以后的每個(gè)App里面都要這么設(shè)置,或者蘋果又要修改什么后會(huì)有未知情況發(fā)生,影響已上線的App,需要重新發(fā)版本才能修復(fù)線上,但重新發(fā)版本又需要一定的審核時(shí)間。

? ? ? ? 首先,按上文步驟,向服務(wù)器要證書,轉(zhuǎn)成.cer,把.cer文件拖到工程里。我們的請(qǐng)求工具是用AFnetworking封裝的類,修改此類,添加代碼。關(guān)鍵代碼:在AFHTTPSessionManager實(shí)例化前,設(shè)置securityPolicy.allowInvalidCertificates = YES;(截圖中handle是AFHTTPSessionManager)。


在請(qǐng)求工具中,AFHTTPSessionManager前添加

? ? ? ? ② 服務(wù)器端使用受信任、合法的證書。使用這個(gè)解決方案,可以說(shuō)治標(biāo)治本。App端基本什么都不用管,http改成https就OK。個(gè)人覺(jué)得好處:如果蘋果官方做有關(guān)這方面的改動(dòng),對(duì)已上線的App影響不會(huì)太大。起碼出問(wèn)題受影響的線上App不用重新發(fā)版本,只需服務(wù)器端做相應(yīng)的修改,即可修復(fù)。


? ? ? ? 補(bǔ)充一點(diǎn):解決Mac Pro無(wú)法插網(wǎng)線上網(wǎng)( 不是廣告 *(→ _ ←)* )。

? ? ? ? 由于Mac自身機(jī)身厚度的限制,使機(jī)身本身無(wú)法直接連接網(wǎng)線。那么就需要一個(gè)外接網(wǎng)線轉(zhuǎn)換頭,我使用的是綠聯(lián)的產(chǎn)品(綠聯(lián)USB百兆網(wǎng)卡)。

? ? ? ? 如果Mac是第一次是使用這個(gè)產(chǎn)品,需要安裝驅(qū)動(dòng)。驅(qū)動(dòng)下載連接:http://www.lulian.cn/download/26-cn.html。下載時(shí)選擇Mac OX 10.*對(duì)應(yīng)的驅(qū)動(dòng)。驅(qū)動(dòng)安裝是類似Windows傻瓜式的安裝方式,一路下一步,最后“完成”,重啟電腦。

? ? ? ? 重啟后,插上設(shè)備,連上網(wǎng)線,打開(kāi)系統(tǒng)偏好設(shè)置–網(wǎng)絡(luò)–點(diǎn)擊左下角的“+”號(hào)–點(diǎn)開(kāi)接口(可以發(fā)現(xiàn)別安裝驅(qū)動(dòng)前多了一個(gè)選項(xiàng):USB以太網(wǎng),選之)-服務(wù)名稱(自己起個(gè)名字)-創(chuàng)建即可。


添加網(wǎng)絡(luò)接口


選擇USB以太網(wǎng),命名后,創(chuàng)建

參考:


關(guān)于iOS啟用ATS安全標(biāo)準(zhǔn)的說(shuō)明

iOS 中 AFNetworking HTTPS 的使用

iOS開(kāi)發(fā)HTTPS實(shí)現(xiàn)之信任SSL證書和自簽名證書

iOS 遷移到HTTPS(自建證書+單向驗(yàn)證+AF3.0+WKWebView+SDWebImage)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • HTTPS介紹 超文本傳輸安全協(xié)議(英語(yǔ):Hypertext Transfer Protocol Secure,縮...
    齊滇大圣閱讀 9,232評(píng)論 8 96
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,697評(píng)論 19 139
  • 一、為了網(wǎng)絡(luò)安全,使用https請(qǐng)求,ios端需要做一些配置。我們用的是阿里云的免費(fèi)的服務(wù)器。 1.去后臺(tái)要阿里云...
    清隱道人閱讀 1,273評(píng)論 4 7
  • 幾天以前,去電影院看了《七月與安生》,我是一個(gè)人去看的。 我家這座小城,不是周末的話,電影院的人是很稀少的。我買了...
    萬(wàn)年修得王小順閱讀 431評(píng)論 0 0
  • 當(dāng)你的愛(ài)不只是對(duì)別人的欲望, 當(dāng)你的愛(ài)不僅僅是一種需要, 當(dāng)你的愛(ài)是一種分享, 當(dāng)你的愛(ài)不是一個(gè)乞丐的愛(ài), 而是一...
    林鋒Frank閱讀 1,089評(píng)論 0 3

友情鏈接更多精彩內(nèi)容