【发布时间】:2015-03-24 18:35:13
【问题描述】:
我正在尝试创建一个脚本来查看我的 ~/ssl/certs 文件夹中的证书数据并向我显示颁发者信息。
它是用 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
我已经阅读了所有的源代码和文档,没有任何意义。
【问题讨论】: