支援https請求以及https請求的抓包

2021-07-25 05:17:56 字數 3908 閱讀 5746

ios9推出的時候,蘋果希望大家使用https協議,來提高資料傳輸之間的安全性。下面我就從最簡單的**介紹,如何在工程中設定,來支援https的請求。

一、證書準備篇

1.證書轉換

在伺服器人員,給你傳送的crt證書後,進到證書路徑,執行下面語句

// openssl x509 -in 你的證書.crt -out 你的證書.cer -outform der

這樣你就可以得到cer型別的證書了。雙擊,匯入電腦。

2.證書放入工程

1、可以直接把轉換好的cer檔案拖動到工程中。

2、可以在鑰匙串內,找到你匯入的證書,單擊右鍵,匯出專案,就可以匯出.cer檔案的證書了

1.使用系統類傳送網路請求篇

1.1 nsurlconnection設定支援https。

在2023年ios9的更新中,nsurlconnection 被廢棄 由 nsurlsession 取代,所以本身是不建議大家繼續用這個類做網路請求的(同樣也有afnetworking 2.x版本),但是考慮到一些舊程式,也不能說改就改,說替換就替換的,所以還是需要普及一下,如果用到了nsurlconnection你需要怎麼做。

**如下:

- (void)connection:(nsurlconnection *)connection willsendrequestforauthenticationchallenge:(nsurlauthenticationchallenge *)challenge

}

你只需要簡單的,新增上如上的**方法,就可以在不影響你原有請求的基礎上,增加了https請求的支援了。
- (void)urlsession:(nsurlsession *)session task:(nsurlsessiontask *)task  didreceivechallenge:(nsurlauthenticationchallenge *)challenge completionhandler:(void (^)(nsurlsessionauthchallengedisposition disposition, nsurlcredential * __nullable credential))completionhandler 

nslog(@"protectionspace = %@",challenge.protectionspace);

}

2.使用afnetworking傳送網路請求篇

afnetworking是乙個討人喜歡的網路庫,適用於ios以及mac os x. 它構建於在nsurlconnection, nsoperation, 以及其他熟悉的foundation技術之上. 它擁有良好的架構,豐富的api,以及模組化構建方式,使得使用起來非常輕鬆.。

2.1 afnetworking 2.x版本

考慮到這個版本,我們還可以使用afhttprequestoperationmanager這個類來處理網路請求。所以我們要做的就是給這個類,設定一些引數,讓它可以支援https的請求,**如下:

支援https(校驗證書,不可以抓包):
// 1.初始化單例類

// 2.設定證書模式

nsstring * cerpath = [[nsbundle mainbundle] pathforresource:@"***" oftype:@"cer"];

nsdata * cerdata = [nsdata datawithcontentsoffile:cerpath];

mgr.securitypolicy

.pinnedcertificates = [[nsarray alloc] initwithobjects:cerdata, nil];

// 客戶端是否信任非法證書

mgr.securitypolicy

.allowinvalidcertificates = yes;

// 是否在證書域字段中驗證網域名稱

[mgr.securitypolicy setvalidatesdomainname:no];

支援https(不校驗證書,可以抓包檢視):
// 1.初始化單例類

// 2.設定非校驗證書模式

mgr.securitypolicy = [afsecuritypolicy policywithpinningmode:afsslpinningmodenone];

mgr.securitypolicy

.allowinvalidcertificates = yes;

[mgr.securitypolicy setvalidatesdomainname:no];

2.2 afnetworking 3.x版本

支援https(校驗證書,不可以抓包):
// 1.初始化單例類

// 2.設定證書模式

nsstring * cerpath = [[nsbundle mainbundle] pathforresource:@"***" oftype:@"cer"];

nsdata * cerdata = [nsdata datawithcontentsoffile:cerpath];

manager.securitypolicy = [afsecuritypolicy policywithpinningmode:afsslpinningmodecertificate withpinnedcertificates:[[nsset alloc] initwithobjects:cerdata, nil]];

// 客戶端是否信任非法證書

mgr.securitypolicy

.allowinvalidcertificates = yes;

// 是否在證書域字段中驗證網域名稱

[mgr.securitypolicy setvalidatesdomainname:no];

支援https(不校驗證書,可以抓包檢視):
// 1.初始化單例類

// 2.設定非校驗證書模式

manager.securitypolicy = [afsecuritypolicy policywithpinningmode:afsslpinningmodenone];

manager.securitypolicy

.allowinvalidcertificates = yes;

[manager.securitypolicy setvalidatesdomainname:no];

參考**: 裡面包含抓包的部分流程

請求介面支援HTTPS

nsstring cerpath nsbundle mainbundle pathforresource 證書名稱 oftype cer nsdata cerdata nsdata datawithcontentsoffile cerpath nsset cerset nsset alloc ini...

QT支援https網路請求

qt自帶的老版本openssl1.0.x在今年 2019 就要結束lts支援了,那麼從qt5.12.4開始,qt將啟用1.1.x,新版本帶來的tls1.3,以前經典的名字叫libeay32.dll和ssleay32.dll,現在改名變成了libcrypto 1 1.dll 和libssl 1 1.d...

jmeter支援傳送https請求

示例 一 jmeter如何匯入ssl證書 步驟1 開啟chrome瀏覽器訪問位址,點選安全鎖,匯出證書,並複製檔案至指定檔案目錄。步驟2 開啟cmd視窗,輸入指令。生成秘鑰 步驟3 開啟jemter選項 ssl管理器,匯入證書。ok。二 方法1 jmeter工具傳送介面https請求型別,實現登入。...