此問題是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