2010-02-05 1 views
0

Вот сценарий: мне нужно подключиться к веб-сайту для получения результатов электронной лаборатории, отформатированных в XML. Чтобы подключиться, мне нужно использовать цифровой сертификат.Использование сертификата PFX для подключения к HTTP-сайту

Я получил версию этой работы на 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), но пока не повезло.

Итак, здесь много проблем. У кого-нибудь есть идеи?

+0

Будьте осторожны с использованием паролей в запросах GET. Они могут оказаться в журналах и обычно могут быть получены довольно легко. Не уверен, что мое заявление относится к HTTPS. –

+0

Я бы добавил несколько проверок, чтобы убедиться, что файлы сертификатов, на ваш взгляд, есть. Я не уверен, что perl2exe делает с путями, но первым подозреваемым, которого я проверял, является то, что относительные пути разрешены правильно. –

+0

Я думаю, что у меня такая же проблема, вы когда-нибудь находили решение? –

ответ

0

Я понятия не имею, что происходит с вашими проблемами perl. Тем не менее, механизацию для Python можно найти here.

 Смежные вопросы

  • Нет связанных вопросов^_^