国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android Okhttp3添加https自簽名證書以及Glide4,Android高級(jí)工程師進(jìn)階學(xué)習(xí)—Android熱修復(fù)原理

這篇具有很好參考價(jià)值的文章主要介紹了Android Okhttp3添加https自簽名證書以及Glide4,Android高級(jí)工程師進(jìn)階學(xué)習(xí)—Android熱修復(fù)原理。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

二、自簽名證書

什么是自簽名證書(self-signed certicates)?

自簽名證書就是沒(méi)有通過(guò)受信任的證書頒發(fā)機(jī)構(gòu), 自己給自己頒發(fā)的證書.

SSL 證書大致分三類:

  • 由安卓認(rèn)可的證書頒發(fā)機(jī)構(gòu)CA(Certificate Authority)(如: VeriSign、DigiCert), 或這些機(jī)構(gòu)的下屬機(jī)構(gòu)頒發(fā)的證書.
  • 沒(méi)有得到安卓認(rèn)可的證書頒發(fā)機(jī)構(gòu)頒發(fā)的證書.
  • 自己頒發(fā)的證書, 分臨時(shí)性的(在開發(fā)階段使用)或在發(fā)布的產(chǎn)品中永久性使用的兩種.

而只有Android系統(tǒng)認(rèn)可的機(jī)構(gòu)辦法的證書,在使用過(guò)程中才不會(huì)出現(xiàn)安全提示。

為什么會(huì)有人使用自簽名的證書呢?

(重要的事重復(fù)三遍)免費(fèi),免費(fèi),免費(fèi),不用花費(fèi)一分錢,在開發(fā)階段寫的代碼, 測(cè)試跟發(fā)布的時(shí)候也可以用。

三、OkHttp3添加自簽名證書

  1. 如何使用自簽名證書?

1.獲取證書流有兩種方式:

  • 將服務(wù)端提供的證書文件放到assets文件夾里面,然后獲取。(因?yàn)槭窃赼ssets文件下,所以會(huì)寫入到apk里面)
  • 打開證書文件,將證書里面的內(nèi)容以字符串的形式通過(guò)流寫入。(不會(huì)寫入到apk中)

2.創(chuàng)建秘鑰,添加證書進(jìn)去

3.創(chuàng)建信任管理器,并把秘鑰初始化到信任管理器里

4.獲取SLL上下文,并把信任管理器初始化到SSL里

5.獲取socket工廠,設(shè)置到okhttpclient中

6.檢驗(yàn)主機(jī)名

if (UrlConsts.serverUrl.contains(“https://”)){

InputStream cerInputStream = null;

try {

//方式一:在assets中獲取證書

cerInputStream = context.getAssets().open(“ssl.cer”);

//方式二:把字符串通過(guò)流的形式獲取證書

// cerInputStream = new ByteArrayInputStream(cerText.getBytes(“UTF-8”));

//獲取socket工廠

SSLSocketFactory sslSocketFactory = SSLUtil.getSSLSocketFactory(cerInputStream);

//okhttp設(shè)置socket工廠

okHttpClientBuilder.sslSocketFactory(sslSocketFactory);

} catch (IOException e) {

e.printStackTrace();

}

}

//檢驗(yàn)主機(jī)名

okHttpClientBuilder.hostnameVerifier(new HostnameVerifier() {

@Override

public boolean verify(String hostname, SSLSession session) {

return true;

}

});

public class SSLUtil {

/**

  • 返回SSLSocketFactory

  • @param certificates 證書的輸入流

  • @return SSLSocketFactory

*/

public static SSLSocketFactory getSSLSocketFactory(InputStream… certificates) {

return getSSLSocketFactory(null,certificates);

}

/**

  • 雙向認(rèn)證

  • @param keyManagers KeyManager[]

  • @param certificates 證書的輸入流

  • @return SSLSocketFactory

*/

public static SSLSocketFactory getSSLSocketFactory(KeyManager[] keyManagers, InputStream… certificates) {

try {

//獲取證書工廠

CertificateFactory certificateFactory = CertificateFactory.getInstance(“X.509”);

//創(chuàng)建秘鑰,添加證書進(jìn)去

KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());

keyStore.load(null);

int index = 0;

for (InputStream certificate : certificates) {

String certificateAlias = Integer.toString(index++);

keyStore.setCertificateEntry(certificateAlias, certificateFactory.generateCertificate(certificate));

try {

if (certificate != null) certificate.close();

} catch (IOException e) {

e.printStackTrace();

}

}

//創(chuàng)建信任管理工廠

TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());

//初始化信任管理器

trustManagerFactory.init(keyStore);

//獲取SSL上下文對(duì)象

SSLContext sslContext = SSLContext.getInstance(“TLS”);

//初始化信任管理器

sslContext.init(keyManagers, trustManagerFactory.getTrustManagers(), new SecureRandom());

//獲取socket工廠

SSLSocketFactory socketFactory = sslContext.getSocketFactory();

return socketFactory;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

}

測(cè)試運(yùn)行,完美解決。

2.信任所有證書(不建議使用)

服務(wù)端提供的證書文件,如果服務(wù)端更改了需要客戶端進(jìn)行相應(yīng)的更改,否則無(wú)法請(qǐng)求服務(wù)端數(shù)據(jù)。如果想不換證書可以繼續(xù)訪問(wèn),可以通過(guò)X509TrustManager信任所有的證書,以達(dá)到客戶端不換證書文件就能獲取到服務(wù)端數(shù)據(jù),但不建議這樣使用?。?!

/**

*信任所有證書(不建議使用)

  • @return

*/

public static SSLSocketFactory getAllSSLSocketFactory(){

//創(chuàng)建X509信任管理器

TrustManager[] trustManagers = new TrustManager[]{

new X509TrustManager() {

@Override

public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {

}

@Override

public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {

}

@Override

public X509Certificate[] getAcceptedIssuers() {

return new X509Certificate[0];

}

}

};

自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過(guò),也去過(guò)華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。

深知大多數(shù)Android工程師,想要提升技能,往往是自己摸索成長(zhǎng)或者是報(bào)班學(xué)習(xí),但對(duì)于培訓(xùn)機(jī)構(gòu)動(dòng)則幾千的學(xué)費(fèi),著實(shí)壓力不小。自己不成體系的自學(xué)效果低效又漫長(zhǎng),而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年Android移動(dòng)開發(fā)全套學(xué)習(xí)資料》,初衷也很簡(jiǎn)單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。
okhttp 添加證書,2024年程序員學(xué)習(xí),android,https,學(xué)習(xí)
okhttp 添加證書,2024年程序員學(xué)習(xí),android,https,學(xué)習(xí)
okhttp 添加證書,2024年程序員學(xué)習(xí),android,https,學(xué)習(xí)
okhttp 添加證書,2024年程序員學(xué)習(xí),android,https,學(xué)習(xí)
okhttp 添加證書,2024年程序員學(xué)習(xí),android,https,學(xué)習(xí)
okhttp 添加證書,2024年程序員學(xué)習(xí),android,https,學(xué)習(xí)
okhttp 添加證書,2024年程序員學(xué)習(xí),android,https,學(xué)習(xí)

既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上Android開發(fā)知識(shí)點(diǎn),真正體系化!

由于文件比較大,這里只是將部分目錄大綱截圖出來(lái),每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且后續(xù)會(huì)持續(xù)更新

如果你覺(jué)得這些內(nèi)容對(duì)你有幫助,可以添加V獲?。簐ip204888 (備注Android)
okhttp 添加證書,2024年程序員學(xué)習(xí),android,https,學(xué)習(xí)

尾聲

最后,我再重復(fù)一次,如果你想成為一個(gè)優(yōu)秀的 Android 開發(fā)人員,請(qǐng)集中精力,對(duì)基礎(chǔ)和重要的事情做深度研究。

對(duì)于很多初中級(jí)Android工程師而言,想要提升技能,往往是自己摸索成長(zhǎng),不成體系的學(xué)習(xí)效果低效漫長(zhǎng)且無(wú)助。 整理的這些架構(gòu)技術(shù)希望對(duì)Android開發(fā)的朋友們有所參考以及少走彎路,本文的重點(diǎn)是你有沒(méi)有收獲與成長(zhǎng),其余的都不重要,希望讀者們能謹(jǐn)記這一點(diǎn)。

最后想要拿高薪實(shí)現(xiàn)技術(shù)提升薪水得到質(zhì)的飛躍。最快捷的方式,就是有人可以帶著你一起分析,這樣學(xué)習(xí)起來(lái)最為高效,所以為了大家能夠順利進(jìn)階中高級(jí)、架構(gòu)師,我特地為大家準(zhǔn)備了一套高手學(xué)習(xí)的源碼和框架視頻等精品Android架構(gòu)師教程,保證你學(xué)了以后保證薪資上升一個(gè)臺(tái)階。

當(dāng)你有了學(xué)習(xí)線路,學(xué)習(xí)哪些內(nèi)容,也知道以后的路怎么走了,理論看多了總要實(shí)踐的。

進(jìn)階學(xué)習(xí)視頻

okhttp 添加證書,2024年程序員學(xué)習(xí),android,https,學(xué)習(xí)

附上:我們之前因?yàn)榍镎惺占亩滓欢€互聯(lián)網(wǎng)公司Android面試真題?(含BAT、小米、華為、美團(tuán)、滴滴)和我自己整理Android復(fù)習(xí)筆記(包含Android基礎(chǔ)知識(shí)點(diǎn)、Android擴(kuò)展知識(shí)點(diǎn)、Android源碼解析、設(shè)計(jì)模式匯總、Gradle知識(shí)點(diǎn)、常見(jiàn)算法題匯總。)

okhttp 添加證書,2024年程序員學(xué)習(xí),android,https,學(xué)習(xí)

習(xí)的源碼和框架視頻等精品Android架構(gòu)師教程,保證你學(xué)了以后保證薪資上升一個(gè)臺(tái)階。

當(dāng)你有了學(xué)習(xí)線路,學(xué)習(xí)哪些內(nèi)容,也知道以后的路怎么走了,理論看多了總要實(shí)踐的。

進(jìn)階學(xué)習(xí)視頻

[外鏈圖片轉(zhuǎn)存中…(img-F3VCFQsV-1711618050724)]

附上:我們之前因?yàn)榍镎惺占亩滓欢€互聯(lián)網(wǎng)公司Android面試真題?(含BAT、小米、華為、美團(tuán)、滴滴)和我自己整理Android復(fù)習(xí)筆記(包含Android基礎(chǔ)知識(shí)點(diǎn)、Android擴(kuò)展知識(shí)點(diǎn)、Android源碼解析、設(shè)計(jì)模式匯總、Gradle知識(shí)點(diǎn)、常見(jiàn)算法題匯總。)

[外鏈圖片轉(zhuǎn)存中…(img-YW4wEGFf-1711618050724)]

本文已被CODING開源項(xiàng)目:《Android學(xué)習(xí)筆記總結(jié)+移動(dòng)架構(gòu)視頻+大廠面試真題+項(xiàng)目實(shí)戰(zhàn)源碼》收錄文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-854788.html

到了這里,關(guān)于Android Okhttp3添加https自簽名證書以及Glide4,Android高級(jí)工程師進(jìn)階學(xué)習(xí)—Android熱修復(fù)原理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java okHttp 忽略Https證書驗(yàn)證

    我們?cè)诤偷谌较到y(tǒng)交互時(shí),Https url會(huì)出現(xiàn)找不到證書的問(wèn)題。unable to find valid certification path to requested target. 我嘗試過(guò)很多方法比如添加證書等,但是最后都以失敗告終。只能退而求其次忽略指定url的證書驗(yàn)證,親測(cè)好用! 創(chuàng)建OkHttpUtil類,代碼如下: 然后我們之前有提到,

    2024年02月09日
    瀏覽(22)
  • Openfeign和okHttp的https請(qǐng)求忽略ssl證書認(rèn)證

    在通過(guò)feign和okhttp請(qǐng)求外部接口時(shí),出現(xiàn)了以下問(wèn)題: Servlet.service() for servlet [dispatcherServlet] in context with path [/xxxx] threw exception [Request processing failed; nested exception is feign.RetryableException: java.security.cert.CertificateException: No subject alternative DNS name matching www.xx.xx.cn found. executing GET htt

    2024年02月07日
    瀏覽(21)
  • web3j 引用報(bào)錯(cuò):okhttp3.RequestBody okhttp3.RequestBody.create(java.lang.String, okhttp3.MediaType)解決

    web3j 引用報(bào)錯(cuò):okhttp3.RequestBody okhttp3.RequestBody.create(java.lang.String, okhttp3.MediaType)解決

    在做區(qū)塊鏈開發(fā)時(shí)引用了web3j,而web3j中又引用了OKhttp,在程序發(fā)起請(qǐng)求時(shí)報(bào)錯(cuò)如下 我項(xiàng)目中引用的web3j包如下 其實(shí)具體web3j哪個(gè)版本感覺(jué)都有類似問(wèn)題,我嘗試過(guò)4.6.3版本到5.0.0都會(huì)報(bào)上述錯(cuò)。然后看項(xiàng)目依賴發(fā)現(xiàn)引用的OKhttp版本是3.14.9,網(wǎng)上說(shuō)要將OKhttp版本號(hào)更換到4.3.1以上

    2024年02月09日
    瀏覽(27)
  • java通過(guò)okhttp方式實(shí)現(xiàn)https請(qǐng)求的工具類(繞過(guò)證書驗(yàn)證)

    java通過(guò)okhttp方式實(shí)現(xiàn)https請(qǐng)求的工具類(繞過(guò)證書驗(yàn)證)

    引入相關(guān)依賴包 2.1、跳過(guò)證書配置類 跳過(guò)證書配置類代碼 2.2、okhttp方式的 https工具類 okhttp方式的 https工具類代碼 測(cè)試代碼 測(cè)試輸出結(jié)果

    2024年01月23日
    瀏覽(64)
  • Java OkHttp3工具類

    okhttp3現(xiàn)在基本都在用的一個(gè)底層網(wǎng)絡(luò)框架。這篇博客主要的目的就是將OKHttp3這個(gè)框架在開發(fā)中能用到的地方都記錄下來(lái),也當(dāng)一個(gè)工具文檔為日后使用時(shí)查找方便。 https://github.com/toutouge/javademosecond/tree/master/hellolearn

    2024年03月17日
    瀏覽(29)
  • Spring boot 使用 Okhttp3

    Spring boot 集成 okhttp3, 使用 http,https 在項(xiàng)目調(diào)用第三方服務(wù)是在所難免的,運(yùn)用傳統(tǒng)類型的Http調(diào)用,封裝繁瑣,代碼量多還不簡(jiǎn)潔,避免一次一次的 找 度娘, 小記一下。 引入jar OkRestClient 工具類 OkHttp動(dòng)態(tài)配置 使用 OkHttp 使用OkHttp 時(shí) 只需要注入?@AutoWired OkRestClient okRestC

    2024年02月11日
    瀏覽(22)
  • Java之okhttp3請(qǐng)求方式

    Java之okhttp3請(qǐng)求方式

    在java開發(fā)中,發(fā)起http請(qǐng)求是非常常見(jiàn)的需求,常用的有HttpClient,下面聊一下okhttp3的請(qǐng)求方式。 1、引入okhttp3依賴 2、提供springboot工程及http接口 3、http請(qǐng)求 4、請(qǐng)求結(jié)果 get請(qǐng)求 post請(qǐng)求 form表單請(qǐng)求 可見(jiàn)發(fā)起http請(qǐng)求還是挺方便的,感興趣的小伙伴可以試試~~~///( v )~~~

    2024年02月13日
    瀏覽(14)
  • Https、CA證書、數(shù)字簽名

    Https、CA證書、數(shù)字簽名

    Https Http協(xié)議 Http協(xié)議是目前應(yīng)用比較多應(yīng)用層協(xié)議,瀏覽器對(duì)于Http協(xié)議已經(jīng)實(shí)現(xiàn)。Http協(xié)議基本的構(gòu)成部分有 請(qǐng)求行 : 請(qǐng)求報(bào)文的第一行 請(qǐng)求頭 : 從第二行開始為請(qǐng)求頭內(nèi)容的開始部分。每一個(gè)請(qǐng)求頭都是由K-V鍵值對(duì)組成。 請(qǐng)求體: 請(qǐng)求頭完成后以空行結(jié)束、從空行開始

    2024年02月12日
    瀏覽(20)
  • https-OPenSSL證書生成及自簽名證書

    https-OPenSSL證書生成及自簽名證書

    目錄 SSL/TLS 1、搭建OPenssl服務(wù)器 1.1、下載 ?1.2、安裝下載好的exe程序 2、服務(wù)器端證書-生成key、CSR、CRT 2.1、進(jìn)入如下目錄,執(zhí)行cmd ?2.2、生成一個(gè)私鑰key ?2.3、由生成的私鑰key生成一個(gè)待簽名的CSR證書文件(公鑰) ?2.4、查看證書內(nèi)容 3、自建CA證書 3.1、創(chuàng)建CA私鑰 3.2、生成C

    2024年02月08日
    瀏覽(24)
  • com.squareup.okhttp3:okhttp 組件安全漏洞及健康度分析

    com.squareup.okhttp3:okhttp 組件安全漏洞及健康度分析

    維護(hù)者 square組織 許可證類型 Apache License 2.0 首次發(fā)布 2016 年 1 月 2 日 最新發(fā)布時(shí)間 2023 年 4 月 23 日 GitHub Star 44403 GitHub Fork 9197 依賴包 5,582 依賴存儲(chǔ)庫(kù) 77,217 com.squareup.okhttp3:okhttp 一個(gè)開源的 HTTP 客戶端庫(kù),可以用于 Android 和 Java 應(yīng)用程序。它提供了一種簡(jiǎn)單而強(qiáng)大的方式來(lái)發(fā)

    2024年02月10日
    瀏覽(38)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包