1. 程式人生 > >Nutch抓取外掛-HTTPS協議支援

Nutch抓取外掛-HTTPS協議支援

1 什麼是HTTPS協議?

HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全為目標的HTTP通道,簡單講是HTTP的安全版。
即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。 它是一個URI scheme(抽象識別符號體系),句法類同http:體系。用於安全的HTTP資料傳輸。
https:URL表明它使用了HTTP,但HTTPS存在不同於HTTP的預設埠及一個加密/身份驗證層(在HTTP與TCP之間)。這個系統的最初研發由網景公司(Netscape)進行,並內置於其瀏覽器Netscape Navigator中,提供了身份驗證與加密通訊方法。現在它被廣泛用於全球資訊網上安全敏感的通訊,例如交易支付方面。

SSL(Secure Sockets Layer 安全套接層),及其繼任者傳輸層安全(Transport Layer Security,TLS)是為網路通訊提供安全及資料完整性的一種安全協議。TLS與SSL在傳輸層對網路連線進行加密。
SSL協議位於TCP/IP協議與各種應用層協議之間,為資料通訊提供安全支援。SSL協議可分為兩層:SSL記錄協議(SSL Record Protocol):它建立在可靠的傳輸協議(如TCP)之上,為高層協議提供資料封裝、壓縮、加密等基本功能的支援。SSL握手協議(SSL Handshake Protocol):它建立在SSL記錄協議之上,用於在實際的資料傳輸開始前,通訊雙方進行身份認證、協商加密演算法、交換加密金鑰等。

HTTPS其實是有兩部分組成:HTTP + SSL / TLS,也就是在HTTP上又加了一層處理加密資訊的模組。服務端和客戶端的資訊傳輸都會通過TLS進行加密,所以傳輸的資料都是加密後的資料。
這裡寫圖片描述
 1. 客戶端發起HTTPS請求

  這個沒什麼好說的,就是使用者在瀏覽器裡輸入一個https網址,然後連線到server的443埠。

  2. 服務端的配置

  採用HTTPS協議的伺服器必須要有一套數字證書,可以自己製作,也可以向組織申請。區別就是自己頒發的證書需要客戶端驗證通過,才可以繼續訪問,而使用受信任的公司申請的證書則不會彈出提示頁面(startssl就是個不錯的選擇,有1年的免費服務)。這套證書其實就是一對公鑰和私鑰。如果對公鑰和私鑰不太理解,可以想象成一把鑰匙和一個鎖頭,只是全世界只有你一個人有這把鑰匙,你可以把鎖頭給別人,別人可以用這個鎖把重要的東西鎖起來,然後發給你,因為只有你一個人有這把鑰匙,所以只有你才能看到被這把鎖鎖起來的東西。

  3. 傳送證書

  這個證書其實就是公鑰,只是包含了很多資訊,如證書的頒發機構,過期時間等等。

  4. 客戶端解析證書

  這部分工作是有客戶端的TLS來完成的,首先會驗證公鑰是否有效,比如頒發機構,過期時間等等,如果發現異常,則會彈出一個警告框,提示證書存在問題。如果證書沒有問題,那麼就生成一個隨機值。然後用證書對該隨機值進行加密。就好像上面說的,把隨機值用鎖頭鎖起來,這樣除非有鑰匙,不然看不到被鎖住的內容。

  5. 傳送加密資訊

  這部分傳送的是用證書加密後的隨機值,目的就是讓服務端得到這個隨機值,以後客戶端和服務端的通訊就可以通過這個隨機值來進行加密解密了。

  6. 服務段解密資訊

  服務端用私鑰解密後,得到了客戶端傳過來的隨機值(私鑰),然後把內容通過該值進行對稱加密。所謂對稱加密就是,將資訊和私鑰通過某種演算法混合在一起,這樣除非知道私鑰,不然無法獲取內容,而正好客戶端和服務端都知道這個私鑰,所以只要加密演算法夠彪悍,私鑰夠複雜,資料就夠安全。

  7. 傳輸加密後的資訊

  這部分資訊是服務段用私鑰加密後的資訊,可以在客戶端被還原。

  8. 客戶端解密資訊

  客戶端用之前生成的私鑰解密服務段傳過來的資訊,於是獲取瞭解密後的內容。整個過程第三方即使監聽到了資料,也束手無策。

2 抓取Fetch

fetch

fetch是”org.apache.nutch.fetcher.Fetcher”的代稱,它負責一個segment的爬取。

使用方法:

Shell程式碼

bin/nutch fetch <segment> [-threads <n>] [-noParsing]

引數說明:

:segment目錄

[-threads ]:執行的fetcher執行緒數預設值 Configuration Key àfetcher.threads.fetch à10

[-noParsing]:禁用自動解析segment資料

配置檔案:

hadoop-default.xml

hadoop-site.xml

nutch-default.xml

nutch-site.xml

備註:

Fetcher依賴於多個外掛以爬取不同的協議,目前已有的協議及支撐外掛如下:

http:

    protocol-http

    protocol-httpclient

https:

    protocol-httpclient

ftp:

    protocol-ftp

file:

    protocol-file

當爬取網上文件的時候,不應該使用protocol-file,因為它是用於爬取本地檔案的。如果你想爬取http、https,應當使用protocol-httpclient。

plugin.includes
protocol-http|urlfilter-regex|parse-(text|html|js)|index-(basic|anchor)|query-

(basic|site|url)|response-(json|xml)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)


Regular expression naming plugin directory names to
include. Any plugin not matching this expression is excluded.
In any case you need at least include the nutch-extensionpoints plugin. By
default Nutch includes crawling just HTML and plain text via HTTP,
and basic indexing and search plugins. ***In order to use HTTPS please enable
protocol-httpclient, but be aware of possible intermittent problems with the
underlying commons-httpclient library.*

相關推薦

Nutch外掛-HTTPS協議支援

1 什麼是HTTPS協議? HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全為目標的HTTP通道,簡單講是HTTP的安全版。 即HTTP下加入SSL層,HTTPS的安全基

fiddler指定HTTPS協議連線的步驟

1 開啟fiddler,選擇Filers 勾選Use Filters,第二個下拉框中選擇show only the following Hosts 然後在輸入框中輸入制定抓取的域名,點選Actions,然後選擇RunFIlerset now 設定HTTPS抓取,選

如何基於https協議的webservice資料包(webservice除錯)

     最近在寫一個客戶端訪問客戶提供的webservice時,得到響應異常,於是想用工具抓取請求響應的soap資料查詢異常原因,如果service是http釋出的,用一般的http、tcp監控工具都可以抓到傳送資料的原文,但是我請求的service是https釋出的,使用

Jmeter Web 性能測試入門 (二):Fiddler http/https 請求

功能 wrap 3-9 req safari itl box 移動 移動設備 jmeter自帶了攔截request的功能,並且也有對應的tool:badboy 可以用。但由於我經常做移動端的項目,個人還是習慣用fiddler來收集request。 官網下載並安裝Fiddle

Charles如何http/https請求

charles ,我們親切的把它稱作茶壺,功能還是十分強大的,尤其是在mac上無法使用fiddler更是。。 其實很容易上手,下載安裝,手機設定下ip代理不久可以了嘛?但是你發現包為https的時候就不那麼容易了,所以寫一個教程,也是自己設定的過程記錄下來。順便把正常htt

【fiddler】https的會話記錄時出現有“Tunnel to ...443”的會話記錄

在抓取https的資料包時,fiddler會話欄目會顯示“Tunnel to….443”的資訊,這個是什麼原因呢? connect表示https的握手(也就是認證資訊,只要是https就要進行認證

Android,ijkplayer增加https協議支援,編譯執行ijkplayer

前言 關於ijkplayer 基於 FFmpeg n3.1 的 Android/iOS 視訊播放器,支援 MediaCodec, VideoToolbox,支援 RTMP/HTTP/HTTPS 視訊流播放,支援本地視訊播放。 如

[Nutch]Nutch過程中生成的目錄內容分析

在上一篇博文中有和大家介紹了nutch爬蟲抓取資料的整個過程,爬蟲一般會抓取到很多的內容,那麼這些內容都存放到什麼地方了呢?其實nutch在抓取的過程中會產生很多的目錄,會把抓到的內容分別儲存到不同的目錄之中。那麼,這些目錄的結構的什麼樣的?每個目錄裡面又

Fiddlerhttps協議的原理是什麽?

ner -m 解密 spl content 信用 col import 什麽   近期項目中遇到個問題,就是測試環境的證書實際是不安全的,但是使用Fiddler 後,瀏覽器的地址欄顯示證書竟然安全了。我百思不得其解,查了大量資料,終於解開了,也分享給大家。   Fiddle

fiddler中安裝證書進行https協議

AI ofa sdn net details tar tails get fas 轉自博客 ==>> fiddler中安裝證書進行https協議的抓取fiddler中安裝證書進行https協議的抓取

Fiddler: 如何HTTPS協議的網頁

配置 bubuko 老師 分享圖片 需要 too 高級 info 保存 作者:韋瑋 轉載請註明出處 Fiddler默認只能抓取HTTP協議的網頁,不能抓取HTTPS協議的網頁,而我們很多時候,都需要抓HTTPS協議的網頁,比如抓淘寶數據等。今天,韋瑋老師會為大家講

淺談HTTPS以及FiddlerHTTPS協議

最近想嘗試基於Fiddler的錄製功能做一些介面的獲取和處理工作,碰到的一個問題就是簡單連線Fiddler只能抓取HTTP協議,關鍵的登入請求等HTTPS協議都沒有捕捉到,所以想讓Fiddler能夠同時抓取到HTTPS和HTTP協議,設定只是很小的一步,關鍵是瞭解HTTPS協

[筆記]如何通過Charleshttps協議請求

前段時間為應對蘋果App Store對網路請求必須為https的要求,公司專門立項對現有網路請求進行了https的支援和切換。 抓包工具比如Charles如果不進行相關的配置,是抓不到https的請求包的,怎麼配置? 首先安裝Charles,公司QA友情提供的安裝包是: C

Fiddlehttps協議(ios)

以前主要是用fiddler抓包對http的應用,但目前大部分應都使用了https協議,需要一些特殊的配置,本文把fiddler ios下https抓包的詳細配置進行了羅列,供大家參考。 fiddl

Fiddler的安裝以及web端https協議的設定

1、Fiddler的安裝 2、代理伺服器的設定 這裡以最新版的goolge瀏覽器為例(低版本的代理伺服器設定所在路徑存在微小差異),在google設定--高階設--開啟代理設定中勾選代理伺服器設定,如下圖所示: 抓包原理:Fiddler之所以能夠抓到

手機通過Charleshttps

高級設置 cat location data ble 9.png 了解 分享 true 因為fiddler不能在mac上使用,而Charles是跨平臺的,可以在mac上使用,所以需要了解一下Charles的使用 安裝破解版Charles 下載破解版包,先啟動一次

使用 Fiddler iPhone 的 HTTPS 請求

方式 only traffic code href jpg upload rem 重新 Fiddler 是著名的 HTTP(S) 抓包工具,功能十分強悍。Fiddler 采用代理的方式進行抓包,所以使用範圍就非常廣泛,不僅可以在 PC 端使用,更可以在移動設備上使用。 要在

Mac用戶包軟件Charles 4.0 破解 以及 Https鏈接設置

覆蓋 內容 分享 便是 菜單 content ima images pan   相信大家曾經都是Window的用戶,作為前端哪能沒有一款抓包工具,抓包工具可以非常便捷的幫助我們分析接口返回報文數據,快速定位問題。   曾經橫掃window用戶的Fiddler便是我們的摯愛

Nginx SSL+tomcat集群,request.getScheme() https正確的協議

port nor tom com () not request 一個 header 轉自:http://feitianbenyue.iteye.com/blog/2056357 最近在做一個項目, 架構上使用了 Nginx +tomcat 集群, 且nginx下配置了

Fidder簡單使用方法(HTTPS和url替換)

session art 連接 nbsp rules 添加 代理 detail 接下來 Fidder是一個windows端主流的抓包工具,可以配置代理,抓https的數據,還可以修改請求體和內容下面是一些簡單的使用方法   安裝完畢後Tools