получение серийного номера из списка CRL

У меня есть список отзыва сертификатов revked.crl с некоторыми записями. как получить серийный номер из него. когда я использую отозванный метод, он возвращает массив записей, например "#OpenSSL::X509::Revoked:0x007f944b1fd0d8". может ли кто-нибудь сказать мне, как разобрать это, чтобы получить точный серийный номер?


person Kavi    schedule 06.04.2017    source источник


Ответы (1)


Попробуйте что-то вроде:

require "openssl"

crl_filepath = "./path/to/mylist.crl"
puts "PARSING CRL FILE #{crl_filepath} ..."

crl = OpenSSL::X509::CRL::new(File.read(crl_filepath))
puts "... ISSUER: #{crl.issuer.to_s}"
puts "... VERSION: #{crl.version.to_s}"
puts "... LAST UPDATE: #{crl.last_update.to_s}"
puts "... NEXT UPDATE: #{crl.next_update.to_s}"

puts "INVESTIGATING FIRST CERTIFICATE..."
r = crl.revoked.first # FYI this is an OpenSSL::X509::Revoked object
puts "... SERIAL: #{r.serial.to_s}"
puts "... TIME: #{r.time.to_s}"
puts "... EXTENSIONS (#{r.extensions.count}):"
r.extensions.each do |ext|
  puts "   ... #{ext.to_h}"
end

Соответствующая документация:

person s2t2    schedule 01.03.2018