2015-11-10 27 views
-1

如何使WWW :: Mechanize接受https服務器的特定SSL證書?
[SSL證書應該由MD5/SHA1/...校驗和確證]https和WWW :: Mechanize - 接受特定證書(MD5/SHA1/...)

背景:
到目前爲止,我需要一個黑客接受過期的(幾天到目前爲止)SSL證書[取代標準組檢查]。我還希望能夠添加SSL校驗和檢查,因爲將來會檢查附加的檢查。

+0

我不知道爲什麼這個問題有幾個倒票,因爲它有效地問如何使用WWW :: Mechanize進行證書鎖定,我認爲這是一個有用的問題。 –

回答

1

WWW :: Mechanize是LWP :: UserAgent的一個子類,它本身使用IO :: Socket :: SSL來建立SSL連接。 IO :: Socket :: SSL提供了一個選項SSL_fingerprint,它可以用來指定證書的預期指紋。請參閱the documentation更多的細節,但很短的例子:

use strict; 
use warnings; 
use WWW::Mechanize; 

my %sslargs = (
    SSL_fingerprint => 'sha256$a0b0d7c3d86a03051af6a43726a0dd855825323cae59fdff2d9b9a8db83934b8', 
); 

my $ua = WWW::Mechanize->new(ssl_opts => \%sslargs); 
my $resp = $ua->get("https://www.example.com"); 

注意,你需要至少IO ::插座:: SSL版本1.980(發佈04/2014)爲SSL_fingerprint的適當的支持,並且還應使用相當新的LWP版本。

使用SSL_fingerprint時,只要指紋匹配,所有其他檢查都會被忽略,即您可以使用自簽名證書,過期證書或主題錯誤的證書。

相關問題