【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android中怎么使用數(shù)字證書_第1頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android中怎么使用數(shù)字證書_第2頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android中怎么使用數(shù)字證書_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android中怎么使用數(shù)字證書

Android中怎么使用數(shù)字證書,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題?;A(chǔ)概念:數(shù)字證書:數(shù)字證實(shí)是采用數(shù)字手段來證實(shí)用戶身份的一種方法。數(shù)字證書含有兩部分?jǐn)?shù)據(jù):一部分是對(duì)應(yīng)主體(單位或個(gè)人)的信息,另一部分是這個(gè)主體所對(duì)應(yīng)的公鑰。即數(shù)字證書保存了主體和它的公鑰的一一對(duì)應(yīng)關(guān)系,用于自我認(rèn)證(向其他的用戶證明自己的身份)。Java數(shù)字證書工具。Java中的keytool.exe可以用來創(chuàng)建數(shù)字證書,所有的數(shù)字證書是以一條一條(采用別名區(qū)別)的形式存入證書庫的中,證書庫中的一條證書包含該條證書的私鑰,公鑰和對(duì)應(yīng)的數(shù)字證書的信息。證書庫中的一條證書可以導(dǎo)出數(shù)字證書文件,數(shù)字證書文件只包括主體信息和對(duì)應(yīng)的公鑰。每一個(gè)證書庫是一個(gè)文件組成,它有訪問密碼,在***創(chuàng)建時(shí),它會(huì)自動(dòng)生成證書庫,并要求指定訪問證書庫的密碼。在創(chuàng)建證書的的時(shí)候,需要填寫證書的一些信息和證書對(duì)應(yīng)的私鑰密碼。這些信息包括

CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx,它們的意思是:CN(Common

Name名字與姓氏)OU(Organization

Unit組織單位名稱)O(Organization組織名稱)L(Locality城市或區(qū)域名稱)ST(State州或省份名稱)C(Country國家名稱)可以采用交互式讓工具提示輸入以上信息,也可以采用參數(shù)-dname

"CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx"來自動(dòng)創(chuàng)建。例如這條命令:keytool

-genkey

-alias

testCA

-keyalg

RSA

-keysize

1024

-keystore

testCALib

-validity

3650在數(shù)字證書庫testCALib中創(chuàng)建了一個(gè)別名為testCA,使用RSA算法加密的,有效期為3650天的數(shù)字證書。證書生成以后,我們可以使用命名將數(shù)字證書導(dǎo)出為一個(gè)文件。keytool

-export

-alias

testCA

-file

testCA.cer

-keystore

testALib

-rfc有關(guān)keytool的其他用法可以查詢keytool的幫助文檔。數(shù)字證書生成以后,我們需要使用生成的數(shù)字證書給程序包簽名,這個(gè)是使用jarsigner

工具。例如,如果我們有一個(gè)android的程序包c(diǎn)alendar.apk.,我們就可以使用剛生成的testCA給改程序包簽名。jarsigner

-keystore

testCALib

calendar.apk

testCA.Android數(shù)字證書概述:Android系統(tǒng)要求每一個(gè)安裝進(jìn)系統(tǒng)的應(yīng)用程序都是經(jīng)過數(shù)字證書簽名的,數(shù)字證書的私鑰則保存在程序開發(fā)者的手中。Android將數(shù)字證書用來標(biāo)識(shí)應(yīng)用程序的作者和在應(yīng)用程序之間建立信任關(guān)系,兒不是用來決定最終用戶可以安裝哪些應(yīng)用程序。這個(gè)數(shù)字證書并不需要權(quán)威的數(shù)字證書簽名機(jī)構(gòu)認(rèn)證,它只是用來讓應(yīng)用程序包自我認(rèn)證的。Android數(shù)字證書包含以下幾個(gè)要點(diǎn):(1)所有的應(yīng)用程序都必須有數(shù)字證書,Android系統(tǒng)不會(huì)安裝一個(gè)沒有數(shù)字證書的應(yīng)用程序(2)Android程序包使用的數(shù)字證書可以是自簽名的,不需要一個(gè)權(quán)威的數(shù)字證書機(jī)構(gòu)簽名認(rèn)證(3)如果要正式發(fā)布一個(gè)Android

,必須使用一個(gè)合適的私鑰生成的數(shù)字證書來給程序簽名,而不能使用adt插件或者ant工具生成的調(diào)試證書來發(fā)布。(4)數(shù)字證書都是有有效期的,Android只是在應(yīng)用程序安裝的時(shí)候才會(huì)檢查證書的有效期。如果程序已經(jīng)安裝在系統(tǒng)中,即使證書過期也不會(huì)影響程序的正常功能。(***ndroid使用標(biāo)準(zhǔn)的java工具

Keytool

and

Jarsigner

來生成數(shù)字證書,并給應(yīng)用程序包簽名。Android系統(tǒng)不會(huì)安裝運(yùn)行任何一款未經(jīng)數(shù)字簽名的apk程序,無論是在模擬器上還是在實(shí)際的物理設(shè)備上。Android的開發(fā)工具(ADT插件和Ant)都可以協(xié)助開發(fā)者給apk程序簽名,它們都有兩種模式:調(diào)試模式(debug

mode)和發(fā)布模式(release

mode)。在調(diào)試模式下,android的開發(fā)工具會(huì)在每次編譯時(shí)使用調(diào)試用的數(shù)字證書給程序簽名,開發(fā)者無須關(guān)心。當(dāng)要發(fā)布程序時(shí),開發(fā)者就需要使用自己的數(shù)字證書給apk包簽名,可以有兩種方法。(1)在命令行下使用JDK中的和Keytool(用于生成數(shù)字證書)和Jarsigner(用于使用數(shù)字證書簽名)來給apk包簽名(2)使用ADT

Export

Wizard進(jìn)行簽名(如果沒有數(shù)字證書可能需要生成數(shù)字證書)簽名策略:同一個(gè)開發(fā)者的多個(gè)程序盡可能使用同一個(gè)數(shù)字證書,這可以帶來以下好處。(1)有利于程序升級(jí),當(dāng)新版程序和舊版程序的數(shù)字證書相同時(shí),Android系統(tǒng)才會(huì)認(rèn)為這兩個(gè)程序是同一個(gè)程序的不同版本。如果新版程序和舊版程序的數(shù)字證書不相同,則Android系統(tǒng)認(rèn)為他們是不同的程序,并產(chǎn)生沖突,會(huì)要求新程序更改包名。(2)有利于程序的模塊化設(shè)計(jì)和開發(fā)。Android系統(tǒng)允許擁有同一個(gè)數(shù)字簽名的程序運(yùn)行在一個(gè)進(jìn)程中,Android程序會(huì)將他們視為同一個(gè)程序。所以開發(fā)者可以將自己的程序分模塊開發(fā),而用戶只需要在需要的時(shí)候下載適當(dāng)?shù)哪K。(3)可以通過權(quán)限(permission)的方式在多個(gè)程序間共享數(shù)據(jù)和代碼。Android提供了基于數(shù)字證書的權(quán)限賦予機(jī)制,應(yīng)用程序可以和其他的程序共享概功能或者數(shù)據(jù)給那那些與自己擁有相同數(shù)字證書的程序。如果某個(gè)權(quán)限(permission)的protectionLevel是signature,則這個(gè)權(quán)限就只能授予那些跟該權(quán)限所在的包擁有同一個(gè)數(shù)字證書的程序。另一個(gè)需要考慮的是Android數(shù)字證書的有效期:(1)數(shù)字證書的有效期要包含程序的預(yù)計(jì)生

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論