【发布时间】:2022-01-07 11:32:28
【问题描述】:
我之前一直在使用 Crypt::X509,但现在我将我的代码移植到更新的支持库 Crypt::OpenSSL::X509。证书中最重要的字段是 CN 和 SAN,我希望有一个简单的调用,例如:
use Crypt::X509;
print $x509->$cert_hr->SubjectAltName;
但是我不得不使用繁琐的代码:
use Crypt::OpenSSL::X509;
my $ext = $x509->extensions_by_oid();
print ${$ext}{'2.5.29.17'}->value();
但更糟糕的是,返回的字符串有寄生的“。”在里面,我需要创建一些智能正则表达式来安全地清理它。
我觉得我错过了一些简单的东西。是否有其他函数或库?
编辑:测试结果:只要您更新到最新版本的库,建议的 Timothy 解决方案就可以工作。无法添加评论,也不能按“接受的答案”。稍后会再次访问。
【问题讨论】:
-
“还有其他函数或库吗?” - 看看IO::Socket::SSL::Utils,它包含将证书解析为散列、从散列创建新证书的函数……它还可以轻松访问subjectAltNames