Perl сертификат аутентификации - PullRequest
1 голос
/ 28 февраля 2020

Я пытаюсь подтвердить сертификат, используя perl. Я могу проверить сертификат и получить ответ с помощью curl, но как мне конвертировать? следующее к perl.

curl -i --cert /Downloads/file.pfx:secret_key --cert-type P12 https://example.com/gettoken

Когда я запускаю вышеупомянутое в curl, я получаю json объект обратно со статусом ok и другими данными.

Я пытался преобразовать то же самое в perl

use LWP::UserAgent qw();
require LWP::Protocol::https;
my $ua = LWP::UserAgent->new;
$ua->ssl_opts(
SSL_ca_file   => '/Downloads/file.pfx',
);
my $test = $ua->post('https://example.com/gettoken');

Когда я делаю дамп на $test, я получаю 500 ошибок. Как мне передать в сертификате тип и секретный ключ. Или я далеко, и это не тот модуль.

Ответы [ 2 ]

2 голосов
/ 28 февраля 2020
curl -i --cert /Downloads/file.pfx:secret_key ...

--cert для сертификата клиента

...
SSL_ca_file   => '/Downloads/file.pfx',

SSL_ca_file вместо этого для хранилища доверенных сертификатов. Т.е. вы используете один и тот же файл для совершенно разных задач. Для использования в качестве клиентского сертификата вы должны вместо этого использовать параметр SSL_cert_file:

...
SSL_cert_file   => '/Downloads/file.pfx',

В последней версии IO :: Socket :: SSL он должен иметь возможность прозрачной обработки файла PFX. Я не уверен, что он будет работать с PFX-файлом, защищенным паролем, но вы можете попытаться установить пароль с помощью SSL_passwd_cb :

SSL_passwd_cb => sub { "secret_key" },

Если это не работает и с в старых версиях IO :: Socket :: SSL вам потребуется извлечь сертификат и ключ в формате PEM из файла PFX.

0 голосов
/ 04 марта 2020
use LWP::UserAgent qw();
my $ua = LWP::UserAgent->new (
ssl_opts => {
  SSL_cert_file => '/path/to/file',
  #SSL_key_file  => $keyfile 
  SSL_passwd_cb => sub {"mysecretkey"},
}
);
my $res = $ua->get ("https://example.com/gettoken");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...