Я пытаюсь создать сценарий, который просматривает данные для моих сертификатов в папке ~/ssl/certs и выводит на экран информацию о эмитенте.Не удается получить результаты с помощью Net :: SSLeay for openssl
Он написан на Perl, и было бы легко просто сказать:
$data = `/usr/bin/openssl x509 -in $file -noout -issuer`
Однако это не очень компактен. Я пытаюсь использовать Net :: SSLeay вместо этого, чтобы получить тот же результат, однако все, что я могу контролировать, - это контрольные суммы, что мне не хватает? Вот что я получил
#!/usr/bin/perl
use 5.10.1;
use strict;
use warnings;
use Net::SSLeay qw(die_now die_if_ssl_error);
Net::SSLeay::load_error_strings();
Net::SSLeay::SSLeay_add_ssl_algorithms(); # Important!
Net::SSLeay::ENGINE_load_builtin_engines(); # If you want built-in engines
Net::SSLeay::ENGINE_register_all_complete(); # If you want built-in engines
Net::SSLeay::randomize();
Net::SSLeay::library_init();
Net::SSLeay::OpenSSL_add_all_algorithms();
my $file = '~/ssl/certs/certificate.crt';
my $x509 = Net::SSLeay::X509_new();
Net::SSLeay::X509_free($x509);
my $type = Net::SSLeay::X509_certificate_type($x509);
my $ctx = Net::SSLeay::CTX_new_with_method(Net::SSLeay::TLSv1_method());
my $test = Net::SSLeay::X509_load_cert_file($ctx, $file, $type);
my $info = Net::SSLeay::X509_issuer_name_hash($x509);
say "\nInfo = $info \nX509 = $x509\nTest= $test\nType = $type\nCTX = $ctx";
This is my output:
Info = 4003674586
X509 = 16119648
Test= 0
Type = 0
CTX = 16137888
Я прочитал весь исходный код и документацию, ничто из этого не имеет никакого смысла.
Спасибо тонну! Это отлично работает, им действительно нужно лучше объяснить свою документацию. – Jeffrey
@Jeffrey: 'Net :: SSLeay' - бесплатное программное обеспечение, и разработчики в моем опыте очень открыты для изменений, которые улучшают программное обеспечение. Поэтому не стесняйтесь предоставлять исправления, которые улучшают документацию. –
Можно ли полностью расшифровать версию сертификата или ключа base64 и распечатать данные? Кажется, что вы можете печатать только тему, издателя и очень мало других вещей. Я пытаюсь сравнить модуль с ключом и сертификатом, чтобы убедиться, что они соответствуют – Jeffrey