2010-06-18 94 views
5

我在perl請求一個使用LWP的網頁,我希望能夠訪問Web服務器提供的SSL證書(我正在查找過期日期證書等等)。我想要的信息不在Crypt :: SSLeay添加到請求的三個標頭中。有沒有一種我可以忽略的方式,我可以通過它獲得SSL證書的對象引用(理想情況下)?我已經掃描了一些perl文檔和Google,但已經過了很長的一週,而且我可能只是沒有閱讀正確的內容。檢查通過LWP請求返回的SSL證書

如果我可以避免它,我不想直接通過單獨的原始SSL連接來獲取證書 - 因爲這裏有一個經過身份驗證的Web代理,並且LWP只是使我的這個問題透明地消失。 :)當我需要的數據已經被傳輸到我的機器/某處時,建立兩個連接是愚蠢的......

+0

相關:http://stackoverflow.com/questions/74358 – daxim 2010-06-18 22:10:35

回答

3

LWP提供的任何回調(有意)訪問套接字都沒有,但是似乎是一種潛在的解決方法 - 如果您向LWP提供keep_aliveconn_cache選項,請求結束時LWP將以連接套接字爲參數在conn_cache對象上調用->deposit。你可以寫一個虛擬conn-cache對象,或者「創造性地」使用LWP提供的LWP::ConnCache。無論如何,如果你使用退避方法來獲取套接字,它將是Net::SSL的一個子類(假設你使用的是ssleay),所以你可以直接調用->get_peer_certificate

+1

這是髒兮兮和邪惡之間的地方,但是/看起來/像它會工作。 :) 謝謝。 – dannysauer 2010-06-20 13:47:21