安卓App預埋ssl證書到期后的處理過程記錄

新年伊始瘫辩,就解決了我內心的一大困惑伏嗜,真好。

今天記錄一下在更換ssl證書時遇到的問題伐厌。


先記錄一下目前關于ssl的使用情況和遇到的問題承绸,再說一下排查問題的過程和最終的解決方案。


目前我司是在godaddy上采買的ssl證書弧械,并運用在web端和app端八酒,用來做單向ssl加密。用來對傳輸?shù)男畔⑦M行加密刃唐。但是2020-01-17羞迷,godaddy上的ssl證書即將到期,涉及到續(xù)費的問題画饥。由于域名是在阿里云上采買的衔瓮,為了保持一致,想將ssl證書也在阿里云上采買抖甘,統(tǒng)一管理嘛热鞍。采買很順利,購買的dv類型的ssl證書衔彻,但是更換以后薇宠,web端可以正常訪問https的,但手機app端就報異常艰额,提示無法連接澄港。于是排查問題的道路就在2019年底開始了!


起初柄沮,覺得問題也挺簡單的回梧,因為我記得2019年初的時候,在godaddy上采買完ssl證書后祖搓,是把一個證書的內容給了安卓app端狱意,他們把證書內容替換到程序中后,就可以正常使用ssl了拯欧。本次也是這么打算的详囤,可是安卓開發(fā)說,為啥2018年版本的app镐作,到了2019年就不用替換纬纪,目前還可用蚓再,為啥本次就得替換?問的我確實有些懵逼了包各。我印象中,2019年初靶庙,確實是替換了一次ssl認證文件的內容问畅,但是并不是全部替換的,一些已經(jīng)賣出去并安裝好的app中六荒,就沒有替換护姆,但是也可以繼續(xù)使用;替換了ssl認證文件的app掏击,仍然可以繼續(xù)使用卵皂。


有一個前提需要說一下,就是2018年所使用的ssl證書也是在godaddy上購買的砚亭。2019年是發(fā)現(xiàn)過期后灯变,又重新購買了一次。按說重新購買了ssl證書捅膘,ssl認證文件都應該是全新的才對啊添祸,怎么可能2018年的認證文件還可以使用呢?于是排查重點就落在了這上寻仗。


開始懷疑是不是app開發(fā)人員更換過認證文件的內容刃泌,只是發(fā)型版本是2018年版本的,忘了更換的事兒了署尤“姨妫可是在2019年初備份的舊的ssl內容中,可以看到曹体,確確實實內容除了服務器CA證書外(后續(xù)再解釋服務器CA證書是啥)俗扇,都是相同的。這就表明混坞,2018年和2019年證書的部分內容是相同的狐援,只有服務器CA證書不同。這又是為啥呢究孕?于是給godaddy技術客服打電話啥酱,我的問題也不是上來就很明確,也是在不斷的對話中才整理清晰的厨诸,比較有意思的是镶殷,打了好幾次電話,明顯可以感覺出男技術人員說起話來就比較自信一些微酬,遇到了好幾次都是女技術绘趋,咋說對方也聽不明白啊颤陶。反復強調的就是每次購買或者續(xù)費了ssl證書,都是需要重新下載安裝的陷遮。我問的是滓走,為啥前后兩年的認證文件內容是相同的,對方也跟我說的是重新下載和安裝帽馋,后來根本也沒法對話了搅方,只能作罷了。自己查吧绽族,也沒查到啥有用的信息姨涡。就這樣,2019年就過去了0陕L纹!


到了2020-01-02检诗,再次跟同事聊到這個問題匈仗,同事提出了一些我沒有概念的問題,比如根證書岁诉,服務器CA證書等概念锚沸,他還提出可以通過一個網(wǎng)站,查看一個ssl證書是否是根證書涕癣。于是我按照他的思路哗蜈,驗證了一下godaddy和阿里云的ssl證書,果然坠韩,godaddy中購買的ssl證書包括兩個文件距潘,一個服務器CA文件,一個中級證書文件只搁。其中音比,中級證書文件中就包含根證書的內容。而在阿里云購買的ssl證書氢惋,只包含一個pem文件洞翩,內容為一個服務器CA證書,一個中間證書CA焰望。不包括根證書Iб凇!熊赖!


注意了啊来屠,阿里云購買的ssl證書中只包含中間證書CA,不包括根證書!

這里引入驗證ssl內容是否是根文件的工具:

https://myssl.com/cert_decode.html



根證書:




于是產(chǎn)生疑問,問啥阿里云購買的ssl證書就不包含根證書,而godaddy上購買的ssl就包含根證書呢指攒?既然詢問godaddy技術解釋不明白,那就詢問阿里云的技術吧酥郭,上圖:


如上可見,阿里云之所以沒有提供根證書,是因為阿里云默認ssl證書是使用在瀏覽器端的,而主流的瀏覽器都內置了各大權威CA機構的根證書零抬,所以阿里云默認無需提供;這也正是為啥使用阿里云的ssl證書宽涌,web瀏覽器端沒有問題。只是除了瀏覽器端蝶棋,還有一個app端也預埋了ssl認證文件內容卸亮,app端不像瀏覽器端內置了CA根證書,app端啥也沒有玩裙,所以當app端發(fā)現(xiàn)服務端沒有根證書時兼贸,認為證書鏈是不完整的,所以無法建立ssl單向加密連接吃溅,所以才會報錯溶诞。這點已經(jīng)在2019年初驗證過一次了,剛買完ssl證書時决侈,我只配置了服務器CA證書和秘鑰螺垢,而沒有添加中級證書部分的內容,這時app端即使替換了認證文件赖歌,也還是報連接錯誤枉圃。排查一圈發(fā)現(xiàn),跟2018年的證書內容比庐冯,缺少了中級證書部分的內容孽亲,于是添加上以后,app端就正常了展父。其實原理上就是沒有提供根證書所致7稻ⅰ!栖茉!

同時篮绿,上圖也驗證了為啥中間證書CA的內容沒有變化,是因為都是在godaddy上購買的ssl證書衡载,證書的品牌類型是相同的搔耕,中級證書的內容也沒有變化,所以才會出現(xiàn)2018年預埋的證書內容,在2019年已經(jīng)過期并再次購買后還是有效的弃榨。其實無論是續(xù)費還是重新購買菩收,都會重新生成服務器CA證書,如果品牌相同鲸睛,則中級證書部分是不會改變的娜饵,只有服務器CA證書發(fā)生變化而已。經(jīng)過查看發(fā)現(xiàn)官辈,中級證書中的中間證書CA箱舞,有效期是20年,只有服務器CA證書的時長是購買ssl證書的時長拳亿,一年晴股,二年,最長三年肺魁,目前电湘,證書還有14天就到期了:


因為國內外的產(chǎn)品意識不同,godaddy與阿里云針對ssl產(chǎn)品提供的形式也不同鹅经。Godaddy更提倡還原技術本身寂呛,從手動創(chuàng)建csr和中級證書中包含根證書可以看出,godaddy要求技術人員參與的更多瘾晃,同時回饋給技術人員的也越多贷痪,但是godaddy不提供私鑰,即key蹦误,因為csr是客戶手動生產(chǎn)的劫拢;而阿里云則是一鍵式的,無需用戶手動創(chuàng)建csr胖缤,阿里云直接系統(tǒng)生成了尚镰,產(chǎn)品中包含key但不包含根證書,因為默認是在瀏覽器端使用的哪廓,瀏覽器內置了CA機構狗唉,可以識別并解析ssl請求。

這樣涡真,對ssl的使用場景就有了需求分俯,如果瀏覽器端,沒有問題哆料,二者都可以缸剪。如果是app中預埋ssl證書內容,則阿里云默認是不提供的东亦。需要額外提交工單杏节,說明此情況唬渗,阿里云才會把根證書提供給你。但因為同時使用了godaddy和阿里云的ssl證書奋渔,才會混淆了產(chǎn)品镊逝。沒有盡早意識到根證書這個重要的因素!


如果2020年還是在godaddy上采買ssl證書嫉鲸,那么針對app預埋內容撑蒜,即將會出現(xiàn)的情況是,預埋了服務器CA證書的app(2019年版)玄渗,將會因為服務器CA證書的到期座菠,而失效;反而是預埋了中間證書內容的app(2018年版)藤树,將會繼續(xù)正常使用浴滴。這就很奇葩了,預埋的是中間證書還是服務器CA證書岁钓,還有說道巡莹。不知道2018版本的app預埋中間證書的人,是早就知道了這其中的道理甜紫,還是瞎貓碰上死耗子了,正好埋對了骂远。前者的可能性大一點囚霸!

而如果2020年是在阿里云上采買ssl證書,則所有的app預埋都將作廢激才,因為購買廠商不同拓型,證書品牌也不同。再或者就是干脆去掉app預埋ssl瘸恼!

阿里云ssl證書品牌:

Godaddy ssl證書品牌:


同時劣挫,還發(fā)現(xiàn)了一個情況,就是阿里云針對不同的域名提供的根證書內容是一致的东帅。這也表明压固,阿里云采用的CA認證機構是同一個。所以頒發(fā)的根證書才一樣靠闭。



但是阿里云給出的回復中也可以看到帐我,預埋其實是存在隱患的:


無論是預埋了服務器CA證書,還是中級證書愧膀,都存在隱患拦键!

建議是:

不太明白系統(tǒng)信任庫是啥。




目前是已經(jīng)將阿里云的ssl證書申請了退款檩淋,計劃是在godaddy上購買ssl證書芬为。本次沒有實現(xiàn)產(chǎn)品的統(tǒng)一。后續(xù)如果修改了預埋ssl證書的情況,需要重新發(fā)版媚朦,則可在阿里云采買ssl證書氧敢,實現(xiàn)統(tǒng)一管理。

不管后續(xù)怎樣發(fā)展莲镣,本次對ssl證書的研究都是值得的福稳。




補充:

根證書:由CA機構頒發(fā)的根證書;

中間證書CA:由指定CA機構頒發(fā)的子證書瑞侮,非服務器CA證書的圆,非根證書;可理解為根證書的子證書半火;

服務器CA證書:即針對指定域名的CA證書(*.com越妈,*.net);

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末钮糖,一起剝皮案震驚了整個濱河市梅掠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌店归,老刑警劉巖阎抒,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異消痛,居然都是意外死亡且叁,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門秩伞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逞带,“玉大人,你說我怎么就攤上這事纱新≌姑ィ” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵脸爱,是天一觀的道長遇汞。 經(jīng)常有香客問我,道長阅羹,這世上最難降的妖魔是什么勺疼? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮捏鱼,結果婚禮上执庐,老公的妹妹穿的比我還像新娘。我一直安慰自己导梆,他們只是感情好轨淌,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布迂烁。 她就那樣靜靜地躺著,像睡著了一般递鹉。 火紅的嫁衣襯著肌膚如雪盟步。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天躏结,我揣著相機與錄音却盘,去河邊找鬼。 笑死媳拴,一個胖子當著我的面吹牛黄橘,可吹牛的內容都是我干的。 我是一名探鬼主播屈溉,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼塞关,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了子巾?” 一聲冷哼從身側響起帆赢,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎线梗,沒想到半個月后椰于,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡仪搔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年廉羔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片僻造。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖孩饼,靈堂內的尸體忽然破棺而出髓削,到底是詐尸還是另有隱情,我是刑警寧澤镀娶,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布立膛,位于F島的核電站,受9級特大地震影響梯码,放射性物質發(fā)生泄漏宝泵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一轩娶、第九天 我趴在偏房一處隱蔽的房頂上張望儿奶。 院中可真熱鬧,春花似錦鳄抒、人聲如沸闯捎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瓤鼻。三九已至秉版,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間茬祷,已是汗流浹背清焕。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留祭犯,地道東北人秸妥。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像盹憎,于是被迫代替她去往敵國和親筛峭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內容

  • 我要更加努力陪每,希望在我的40年代活得如她這般~依舊美麗影晓,但更有活力 我希望能多改掉一些現(xiàn)在的壞毛病,多養(yǎng)成一些好習...
    錦心2019閱讀 197評論 0 0
  • 工作流程游戲化檩禾,讓我聯(lián)想到班主任平時話術練習里的一個話術點:怎樣幫助孩子學會自主學習挂签?有一個方法就是讓孩子在學習中...
    山水也有幸閱讀 182評論 0 0
  • 速讀了一遍《幸福的方法》,總體來說這本書給我的印象還是很好的(之前看了一篇書摘盼产,沒有好印象)饵婆。 先是瀏覽了一下目錄...
    耿厚載閱讀 454評論 0 3