此问题是my last question的扩展。在Perl中处理x509客户端证书(进一步处理)
基本上最后一个问题问如何获得证书到Perl和香港专业教育学院做到了与Web::ID
包..
my $webid = Web::ID->new(certificate => $ENV{SSL_CLIENT_CERT});
我验证了这个工程通过调用blessed($webid)
也Dumper($webid)
然而,我仍然不能拨打$webid->uri
,这是我应该设置的属性。事实上,我不能打电话以外的任何其他属性$webid->certificate
所以基本上我仍然无法解析SAN。
EDIT
所以现在直接使用Web::ID::Certificate
包我可以通过SAN阵列直接循环。
my $cert = Web::ID::Certificate->new(pem => $ENV{SSL_CLIENT_CERT}); foreach (@{ $cert->subject_alt_names }) { print "SAN: ", $_->type, " = ", $_->value; }
所以我的问题是回答..但是...我还在迷茫...... 我想我不明白为什么Web::ID
的设定uri
心不是?
为什么我的$webid
的属性没有被设置?
EDIT2在tobyink的要求:
$VAR1 = bless({ 'certificate' => bless({ 'pem' => '-----BEGIN CERTIFICATE----- MIIDlzCCAn+gAwIBAgIJAI6PdfUNmz5oMA0GCSqGSIb3DQEBCwUAMEgxCzAJBgNV BAYTAlhYMREwDwYDVQQHDAhJbnRlcm5ldDEQMA4GA1UECgwHQml0bWFyazEUMBIG A1UEAwwLbGVhdGhhbi5uZXQwIBcNMTQxMDMxMTI1NjAzWhgPMjExNDEwMDcxMjU2 MDNaMEgxCzAJBgNVBAYTAlhYMREwDwYDVQQHDAhJbnRlcm5ldDEQMA4GA1UECgwH Qml0bWFyazEUMBIGA1UEAwwLbGVhdGhhbi5uZXQwggEiMA0GCSqGSIb3DQEBAQUA A4IBDwAwggEKAoIBAQCna/Lvihx5nD3LbjfLo0vDIQkkSR6u/bKbwm346VJBVRh6 /K5gHM19os7ZeNp8GlArl0OGtF5QSf+TGHt0hD8RtgACJumdn/oATYGvGfdwnLu0 vUD9XHc6wzl+thvp7cT1Dw8BtEvUi+e4UBpIJMXCJkMt+Er23Mn288EbSGsC8q1u ga6Vp4toX4/fSuDEHAlEGeVhWCJfHy26lpaHPPuLTUfr1/8b1TiYI19rit4HK/wS MfKfXkLXc2a+Clr+/girqa60Q9zXP0GjQRawZ/B8WHVKBkE3DqOp/jEtEytS7Ojv 2ieylYT+/IhiQgqVS6CgE6vZ65PRzuQOItFoNaV7AgMBAAGjgYEwfzAvBgNVHREE KDAmhhVodHRwOi8vbGVhdGhhbi5uZXQvI2mBDTFAbGVhdGhhbi5uZXQwHQYDVR0O BBYEFIBUZ3r+B/dc900RyvhlVXq4Znf9MB8GA1UdIwQYMBaAFIBUZ3r+B/dc900R yvhlVXq4Znf9MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAE/adF6C MJHoh1IxnwrvPLZ0S66XD0xPHlQ6ZKvuKqTX2nakf7vXaSzFCkoXJ6Vbv19NXpqZ 28jRBCgv0rszT8ODICApp65XsFc67w5S2/+soIDKs3ZLuKBPvRu6x7cPIeSDfj2J w6fQ9dXOSzUmdPCoorudrW+L/CmKI8Tn2I2KQah6p9HGh0/XnxXob0kGkGeJF5sR WOLQOUT+HpEjAy3Eeu1nygxqscaTESKv+0hLV7yHHzJl9TJRFbNw4zYzU3h8t8M+ pSu3SD4YC3HixmZarz7fV36zWaAxJBHRtBkbOwgOMBY4wzfpMPPV4fQ61Qio8DLR lN7nzvuQD+BA4OQ= -----END CERTIFICATE----- ' }, 'Web::ID::Certificate') }, 'Web::ID');
您是否100%确定证书是为[WebID](http://www.w3.org/2005/Incubator/webid/spec/tls/)正确设置的?并非所有的x509证书都是。如果您发布PEM文件,我很乐意检查。 (请记住,这只是公钥的一部分,因此不应该有任何公开发布的安全问题。) – tobyink 2014-10-31 12:04:27
是的,这是正确的我可以使用webid登录到freinds站点。我也在 - > https://auth.my-profile.eu/auth/index.php?verbose=on – 2014-10-31 13:24:57
中检查过它,在成功创建引用'$ webid'后,对除'certificate'之外的任何属性的任何调用使脚本崩溃。 – 2014-10-31 13:34:50