fishfree
(Fishfree)
1
@david 데이비드님, 설정 예시를 공유해 주시겠어요? Moodle 3.10에 Discourse를 연동하려고 여러 번 시도했지만 아직 성공하지 못했습니다. 항상 같은 오류가 표시됩니다:
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)
2
“플랫폼 공개 키” 설정에 무엇을 입력하셨나요? 기억이 맞다면 Moodle은 기본적으로 JWKS URL을 제공하며, 이 플러그인은 이를 지원하지 않습니다.
어딘가에 원본 인증서를 찾아서 Discourse에 복사/붙여넣기할 수 있어야 합니다.
fishfree
(Fishfree)
3
@david 답변해 주셔서 감사합니다. 네. Moodle에서 Public keyset URL: https://mysiet.com/mod/lti/certs.php라고 표시되었습니다.
이 URL을 브라우저에서 열었더니 다음과 같이 표시되었습니다:
{
"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"
}
]
}
JSON에서 “n” 값(가장 긴 값)을 복사해서 Discourse에 입력했습니다. 하지만 여전히 동일한 오류가 발생합니다.
david
(David Taylor)
4
n 값만 복사하는 것만으로는 충분하지 않을 것 같습니다. Discourse에는 PEM 형식의 키가 필요합니다. 장기적으로는 JWK 지원이 추가될 수 있지만, 단기적으로는 키를 변환하여 작동하도록 할 수 있어야 합니다.
JWK 형식을 PEM으로 변환할 수 있는 온라인 도구가 몇 가지 있습니다. 여기를 참고하세요. (물론 이러한 온라인 도구의 안전성을 보장할 수는 없으므로, 공개 정보만 입력하도록 주의하세요)
PEM 키(-----BEGIN PUBLIC KEY-----로 시작하는)를 얻으면, Discourse가 이를 받아들이게 됩니다.