fishfree
(Fishfree)
6 أكتوبر 2021، 12:12ص
1
@david ديفيد، هل يمكنك مشاركة مثيل إعدادات معي؟ لقد حاولت عدة مرات لدمج Discourse مع Moodle 3.10، لكن دون جدوى. تظهر دائمًا الرسالة التالية:
OpenSSL::PKey::RSAError (Neither PUB key nor PRIV key: nested asn1 error)
lib/middleware/omniauth_bypass_middleware.rb:50:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:355:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:187:in `call'
david
(David Taylor)
6 أكتوبر 2021، 9:34ص
2
ما الذي أدخلته في إعداد “مفتاح المنصة العام”؟ إذا كان ذاكرتي صحيحة، فإن Moodle يوفر عنوان URL لـ JWKS افتراضيًا، وهذا الإضافة لا يدعمه.
يجب أن يكون من الممكن العثور على الشهادة الخام في مكان ما، والتي يمكنك نسخها ولصقها في Discourse،
fishfree
(Fishfree)
7 أكتوبر 2021، 11:58ص
3
@david شكرًا لك على الرد. نعم، في Moodle، أظهرت Public keyset URL: https://mysiet.com/mod/lti/certs.php.
فتحت هذا الرابط في المتصفح، فظهر ما يلي:
{
"keys": [
{
"kty": "RSA",
"alg": "RS256",
"kid": "1371e22ce81f1dbb936a",
"e": "AQAB",
"n": "xXOfRS1UronVdVUEal0jyIhyNkAcbCRb6K2uzLsoQgRAaqA2ixbshCTWW_Yj-ZoJgg7UoruO65TB5EIldMyPJbYjYoMF0rB5a-wcvEhtWxfLs8FsDNLM9czjYXZUXBJ6sxIGNp-9Wp4c6PaecvXDfc4bJoHU8Ee5WzUk2XuX8dXX4jx8ipwzRa8qaQT-0cIPnZw4LmkPiTgn-gA-LuqjG2w9awwjnWTuZbTNPTphgPO9FD4lD_dAY3biURU_lEyJXflqFYwbrpja-b8y23qixwiHEYsM3_2F5D-DrI3Nsty219-ALDmJ0wY1hnr4p2NfwYZr_d2YjpIiJW_8iW3SRQ",
"use": "sig"
}
]
}
لقد نسخت قيمة “n” من ملف JSON (الأطول) إلى Discourse. لكن لا يزال الخطأ نفسه يظهر.
david
(David Taylor)
7 أكتوبر 2021، 12:42م
4
أعتقد أن نسخ قيمة n وحدها لن يكون كافياً — فـ Discourse يحتاج إلى المفتاح بتنسيق PEM. على المدى الطويل، قد نتمكن من إضافة دعم لـ JWKs، لكن على المدى القصير، يمكنك جعل الأمر يعمل عن طريق تحويل المفتاح.
هناك بعض الأدوات عبر الإنترنت التي يمكنها التحويل من تنسيق JWKs إلى PEM. إليك إحداها . (من الواضح أنني لا أستطيع ضمان أمان هذه الأدوات عبر الإنترنت، لذا تأكد من لصق المعلومات العامة فقط فيها)
بمجرد حصولك على مفتاح PEM (الذي يبدأ بـ -----BEGIN PUBLIC KEY-----)، يجب أن يقبله Discourse.