-1
如何使WWW :: Mechanize接受https服務器的特定SSL證書?
[SSL證書應該由MD5/SHA1/...校驗和確證]https和WWW :: Mechanize - 接受特定證書(MD5/SHA1/...)
背景:
到目前爲止,我需要一個黑客接受過期的(幾天到目前爲止)SSL證書[取代標準組檢查]。我還希望能夠添加SSL校驗和檢查,因爲將來會檢查附加的檢查。
如何使WWW :: Mechanize接受https服務器的特定SSL證書?
[SSL證書應該由MD5/SHA1/...校驗和確證]https和WWW :: Mechanize - 接受特定證書(MD5/SHA1/...)
背景:
到目前爲止,我需要一個黑客接受過期的(幾天到目前爲止)SSL證書[取代標準組檢查]。我還希望能夠添加SSL校驗和檢查,因爲將來會檢查附加的檢查。
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時,只要指紋匹配,所有其他檢查都會被忽略,即您可以使用自簽名證書,過期證書或主題錯誤的證書。
我不知道爲什麼這個問題有幾個倒票,因爲它有效地問如何使用WWW :: Mechanize進行證書鎖定,我認爲這是一個有用的問題。 –