使用PFX证书连接HTTP网站

1 投票
1 回答
1816 浏览
提问于 2025-04-15 18:55

这是一个场景:我需要连接到一个网站,以获取格式为XML的电子实验室结果。为了连接,我需要使用数字证书。

我已经在Perl中实现了一个版本,代码大致是这样的:

#!/usr/bin/env perl

use strict;
use WWW::Mechanize;
$|++;

my $username = 'xxx';
my $password = 'yyy';

$ENV{HTTPS_PKCS12_FILE}     = 'CERTFILE.pfx';
$ENV{HTTPS_PKCS12_PASSWORD} = 'PathCert';

my $mech = WWW::Mechanize->new();
$mech->agent_alias('Windows IE 6');

$mech->get("https://www.example.org/xyz/,DanaInfo=999.33.1.10+");
$mech->get("https://www.example.org/xyz/isapi_pathnet.dll?Page=Login&Mode=Silent&UserID=xxx&Password=yyy,DanaInfo=999.33.1.10");
$mech->get("https://www.example.org/xyz/isapi_pathnet.dll?Page=HL7&Query=NewRequests,DanaInfo=999.33.1.10");

print $mech->content();

这个代码在我自己的工作站上运行得很好。但是:

  • 如果我用perl2exe来编译它,就不行了。
  • 如果我尝试用pp编译(比如说“pp -r sslclient.pl”),我得到的结果是“500 SSL协商失败”。
  • 如果我把整个目录复制到另一台电脑上,脚本在第一个$mech->get()语句处就卡住了。
  • 真正想要的是找到一个在Python中等效的实现(因为我的应用程序其他部分都是用Python写的),但到目前为止还没有找到。

所以,这里有很多问题。有人有什么想法吗?

1 个回答

-1

我对你遇到的perl问题一点头绪都没有。不过,你可以在这里找到Python的mechanize库。

撰写回答