【问题标题】:Using a PFX Certificate to connect to an HTTP site使用 PFX 证书连接到 HTTP 站点
【发布时间】:2010-02-05 00:24:34
【问题描述】:

以下是场景:我需要连接到一个网站来检索 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),但到目前为止还没有运气。

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

【问题讨论】:

  • 在 GET 请求中使用密码时要小心。它们最终会出现在日志中,并且通常可以很容易地检索到。不确定我的陈述是否适用于 HTTPS。
  • 我会添加一些检查以确保您认为存在的证书文件确实存在。我不确定 perl2exe 对路径的作用,但我要检查的第一个怀疑是正确解析了相对路径。
  • 我想我也遇到了同样的问题,你找到解决办法了吗?

标签: python perl ssl certificate


【解决方案1】:

我不知道你的 perl 问题是怎么回事。但是,可以在 here 找到 mechanize for Python。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 2011-10-23
    • 1970-01-01
    • 2020-09-19
    • 2013-09-18
    • 2013-09-10
    • 1970-01-01
    相关资源
    最近更新 更多