سؤال

ومرحبا بكم جميعا وشكرا على وقتك قراءة هذا.

ولست بحاجة للتحقق من الشهادات التي تصدرها بلدي CA الخاصة، ولدي شهادة. كيف يمكنني أن أفعل ما يعادل بينسل ل

وبينسل تحقق -CAfile

في التعليمات البرمجية روبي؟ وRDoc لبينسل ليست مفيدة جدا في هذا الصدد. لقد حاولت:

require 'openssl'

ca = OpenSSL::X509::Certificate.new(File.read('ca-cert.pem'))

lic = OpenSSL::X509::Certificate.new(File.read('cert.pem'))

puts lic.verify( ca )

ولكن يمكنني الحصول على:

test.rb:7:in `verify': wrong argument (OpenSSL::X509::Certificate)!
(Expected kind of OpenSSL::PKey::PKey) (TypeError)
  from test.rb:7

وأنا لا يمكن أن تجد حتى "تحقق" في Rdoc بينسل في http://www.ruby-doc.org/stdlib/libdoc /openssl/rdoc/index.html .

وهو محل تقدير أي مساعدة. شكرا مرة أخرى!

هل كانت مفيدة؟

المحلول

وتحتاج إلى التحقق من صحة مع

lic.verify(ca.public_key)

وبالإضافة قبل أن تتمكن من التحقق من مصدر الشهادة مع

lic.issuer.to_s == ca.subject.to_s

صفحة المساعدة اليابانية للحصول على قائمة الأساليب المتاحة:)

نصائح أخرى

وlic.verify() فقط التحقق من المفتاح من الشهادة التي وقعت يسانس. المصدقة الجذر Ccommercial لا توقع شهادات المستخدم النهائي مباشرة. عادة ما يكون هناك واحد أو 2 الشهادات توقيع المتوسطة المعنية.

وحتى إذا CA -> signer -> user cert ثم

وlic.verify( signer.public_key) وsigner.verify( CA.public_key) سيعود صحيح ولكن سوف lic.verify( CA.public_key ) عودة كاذبة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top