X.509証明書を表示するRubyスクリプト
証明書(公開鍵にデジタル署名を施したもの)を表示するRubyスクリプトです。ファイルbobby.cerに証明書が入っているものとします。
# show_cert.rb require 'openssl' cert = OpenSSL::X509::Certificate.new(File.open('bobby.cer')) print cert.to_text
実行結果です。bobby.cerはベリサイン(テスト用Class1 Digital ID)で作りました。
C:\work> type bobby.cer -----BEGIN CERTIFICATE----- MIIErzCCA5egAwIBAgIQJgw86jsWmGPeUT4qT+TWKjANBgkqhkiG9w0BAQUFADCB 3TELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2Ug YXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNTEeMBwGA1UECxMV UGVyc29uYSBOb3QgVmFsaWRhdGVkMTcwNQYDVQQDEy5WZXJpU2lnbiBDbGFzcyAx IEluZGl2aWR1YWwgU3Vic2NyaWJlciBDQSAtIEcyMB4XDTA4MDcxNTAwMDAwMFoX DTA4MDkxMzIzNTk1OVowgf0xFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYD VQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMUYwRAYDVQQLEz13d3cudmVyaXNp Z24uY29tL3JlcG9zaXRvcnkvUlBBIEluY29ycC4gYnkgUmVmLixMSUFCLkxURChj KTk4MR4wHAYDVQQLExVQZXJzb25hIE5vdCBWYWxpZGF0ZWQxJzAlBgNVBAsTHkRp Z2l0YWwgSUQgQ2xhc3MgMSAtIE1pY3Jvc29mdDEQMA4GA1UEAxQHQm9iIERvZTEe MBwGCSqGSIb3DQEJARYPYm9iYnlAaHl1a2kuY29tMIGfMA0GCSqGSIb3DQEBAQUA A4GNADCBiQKBgQDxJAQlUI1s691PGivYWxSDFb2QO0/tR9M53SOpxYiEaHoaVDEz NetXw9ekj0SkudFcg3yJGMqgovhH4oCvlKyDockkXiIp4esudRzWiU17E7HqtbT4 KB6CnNoG+5/9BqrdY20jc2auGMhOY8Yp24GsH6N+cp6Ra9DRq36XlrsrMQIDAQAB o4HMMIHJMAkGA1UdEwQCMAAwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcXAzAqMCgG CCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhMAsGA1UdDwQE AwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIwSgYDVR0fBEMwQTA/ oD2gO4Y5aHR0cDovL0luZEMxRGlnaXRhbElELWNybC52ZXJpc2lnbi5jb20vSW5k QzFEaWdpdGFsSUQuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQA6dUQ7WLLa5alLPnJl yb76hFsDs+QRfpl9kBjCL7p1d/ZIfsXYn4qm/0QIBLQMNoHPtmqyniaq5BE5pLYg 4aflrUvGiDZLUQp9Pxe5Kd6yw81T9SsaeOTWpf2AUJGRk5cAU/bRKpYY/3VO+iqs JzU3o4xZFJEk/YrF3ZJQB6B6GosW0QR4wVBGo1T+Hdw16zMp4Y0w6mZasDov6pxM e6OIAqAQhanTl2pPDqGv3QU6Q38vzmLE+ueLP6VXbuKma3y8aXhOlLTrdDXwejRY kRpNVvK+T003GpiX0kv0HRsp+f6o6joT5ZPI0EqfQHaqvmTZyNkxk5SRAM63L7s8 E9kt -----END CERTIFICATE----- C:\work> ruby show_cert.rb Certificate: Data: Version: 3 (0x2) Serial Number: 26:0c:3c:ea:3b:16:98:63:de:51:3e:2a:4f:e4:d6:2a Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=Terms of use at https://www.verisign.com/rpa (c)05, OU=Persona Not Validated, CN=VeriSign Class 1 Individual Subscriber CA - G2 Validity Not Before: Jul 15 00:00:00 2008 GMT Not After : Sep 13 23:59:59 2008 GMT Subject: O=VeriSign, Inc., OU=VeriSign Trust Network, OU=www.verisign.com/repository/RPA Incorp. by Ref.,LIAB.LTD(c)98, OU=Persona Not Validated, OU=Digital ID Class 1 - Microsoft, CN=Bob Doe/emailAddress=bobby@hyuki.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:f1:24:04:25:50:8d:6c:eb:dd:4f:1a:2b:d8:5b: 14:83:15:bd:90:3b:4f:ed:47:d3:39:dd:23:a9:c5: 88:84:68:7a:1a:54:31:33:35:eb:57:c3:d7:a4:8f: 44:a4:b9:d1:5c:83:7c:89:18:ca:a0:a2:f8:47:e2: 80:af:94:ac:83:a1:c9:24:5e:22:29:e1:eb:2e:75: 1c:d6:89:4d:7b:13:b1:ea:b5:b4:f8:28:1e:82:9c: da:06:fb:9f:fd:06:aa:dd:63:6d:23:73:66:ae:18: c8:4e:63:c6:29:db:81:ac:1f:a3:7e:72:9e:91:6b: d0:d1:ab:7e:97:96:bb:2b:31 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Certificate Policies: Policy: 2.16.840.1.113733.1.7.23.3 CPS: https://www.verisign.com/rpa X509v3 Key Usage: Digital Signature, Key Encipherment X509v3 Extended Key Usage: E-mail Protection, TLS Web Client Authentication X509v3 CRL Distribution Points: URI:http://IndC1DigitalID-crl.verisign.com/IndC1DigitalID.crl Signature Algorithm: sha1WithRSAEncryption 3a:75:44:3b:58:b2:da:e5:a9:4b:3e:72:65:c9:be:fa:84:5b: 03:b3:e4:11:7e:99:7d:90:18:c2:2f:ba:75:77:f6:48:7e:c5: d8:9f:8a:a6:ff:44:08:04:b4:0c:36:81:cf:b6:6a:b2:9e:26: aa:e4:11:39:a4:b6:20:e1:a7:e5:ad:4b:c6:88:36:4b:51:0a: 7d:3f:17:b9:29:de:b2:c3:cd:53:f5:2b:1a:78:e4:d6:a5:fd: 80:50:91:91:93:97:00:53:f6:d1:2a:96:18:ff:75:4e:fa:2a: ac:27:35:37:a3:8c:59:14:91:24:fd:8a:c5:dd:92:50:07:a0: 7a:1a:8b:16:d1:04:78:c1:50:46:a3:54:fe:1d:dc:35:eb:33: 29:e1:8d:30:ea:66:5a:b0:3a:2f:ea:9c:4c:7b:a3:88:02:a0: 10:85:a9:d3:97:6a:4f:0e:a1:af:dd:05:3a:43:7f:2f:ce:62: c4:fa:e7:8b:3f:a5:57:6e:e2:a6:6b:7c:bc:69:78:4e:94:b4: eb:74:35:f0:7a:34:58:91:1a:4d:56:f2:be:4f:4d:37:1a:98: 97:d2:4b:f4:1d:1b:29:f9:fe:a8:ea:3a:13:e5:93:c8:d0:4a: 9f:40:76:aa:be:64:d9:c8:d9:31:93:94:91:00:ce:b7:2f:bb: 3c:13:d9:2d