Misskey: Pleromaのインスタンスのアカウントをフォローできない

Created on 19 Aug 2018  ·  9Comments  ·  Source: syuilo/misskey

Summary


Pleromaのインスタンスのアカウントをフォローできない

Expected Behavior


フォローできる

Actual Behavior


Pleromaのインスタンスのアカウントをフォローできない
Misskey側はフォロー中だが、Pleromaの方にはフォローリクエストが来ていない

Steps to Reproduce

  1. /@[email protected]にアクセス
  2. フォローボタンを押下

Environment



pleroma.knzk.me <--> misskey.xyzで確認

🐛Bug

Most helpful comment

今のkeyId="acct:[email protected]"で送るのが古い形式?みたいで
publicKey.idの部分は照合に使用せずに公開キーを取得する動作で動いてるみたい

普通にkeyId=<publicKey.id>を使用するようになおせば大丈夫かも

All 9 comments

I confirm, connectivity with Pleroma instances is not working

Pleromaのログ(手動フェッチ):

request_id=2l6vcug0jho49nq71o000cu1 [info] POST /users/artik/inbox
request_id=2l6vcug0jho49nq71o000cu1 [info] Sent 500 in 121µs
[error] #PID<0.3979.0> running Pleroma.Web.Endpoint (cowboy_protocol) terminated
Server: falafel.win:80 (http)
Request: POST /users/artik/inbox
** (exit) an exception was raised:
     ** (ArgumentError) argument error
         (stdlib) :binary.match("keyId=\"acct:[email protected]\",algorithm=\"rsa-sha256\",headers=\"date\",signature=\"jmuhlOeaEIZGQtEedlgu/ihfeHXbAgiWcrdSgDhzIQfnvrkfYbwppRH2Mwwh08auLsihOVktZm0NJIeJQN6mD65EWJCkcn0D7NqqAUmoM8A24ovXbSd8r9C9NwPbv6aRLVGthaAEhvfTJGCsDPTD6brohGOuM6ETeXQGRYkOOCQaqMSSRa4/LGM/hzLm6lHEfr89tXMpDwmGQugnLc/CU+xzT4v7FLVOO7YJ4vAAce+OjOYmCbT6kZ7jjbWOYwSAU4SGL1pEVVEy5PDnBWKgQMDFzzeKhr0cfjoi3zfqpwTi/7E+f1M2PQG/W5f5F1qwZl5XPRCZjO4G12OmcgRnwQ==\"", nil)
         (elixir) lib/string.ex:2089: String.contains?/2
         (pleroma) lib/pleroma/plugs/http_signature.ex:21: Pleroma.Web.Plugs.HTTPSignaturePlug.call/2
         (pleroma) lib/pleroma/web/router.ex:306: Pleroma.Web.Router.activitypub/2
         (pleroma) lib/pleroma/web/router.ex:1: Pleroma.Web.Router.__pipe_through7__/1
         (phoenix) lib/phoenix/router.ex:273: Phoenix.Router.__call__/1
         (pleroma) lib/pleroma/web/endpoint.ex:1: Pleroma.Web.Endpoint.plug_builder_call/2
         (pleroma) lib/pleroma/web/endpoint.ex:1: Pleroma.Web.Endpoint.call/2

ログありがとうございます。
(認証周りが怪しい…?)

そうみたい。
Pleromaのリポジトリ issue:https://git.pleroma.social/pleroma/pleroma/issues/259

原因のうち1個め(上記ログの原因)が
リクエスト時にContent-Typeを送ってないので、Pleroma側で値が取れなくてエラー

ただConten-Typeを送ってるようにしても今度は別のエラーが出る

[info] Signature not from author, relayed message, fetching from source

おそらくkeyIdの形式がNG
Misskey

Signature: keyId="acct:[email protected]"
"actor":"https://misskey.example.com/users/xxxxxxxxxxxxxxxxxxxxxxxx"

Mastodon

Signature: keyId="https://mastodon.example.com/users/name#main-key"
"actor":"https://mastodon.example.com/users/name"

この keyId の形式は #1828 と同じ話と思われる

でもkeyIdの名称を途中から変えて大丈夫なのかわからないわ

そもそもMisskeyのActorではpublicKey.idが https://misskey.xyz/users/5890a38964687055184a0a51/publickey のようになっているので(e.g. https://misskey.xyz/users/5890a38964687055184a0a51 )、現行のMisskeyの実装がおかしいのでは

今のkeyId="acct:[email protected]"で送るのが古い形式?みたいで
publicKey.idの部分は照合に使用せずに公開キーを取得する動作で動いてるみたい

普通にkeyId=<publicKey.id>を使用するようになおせば大丈夫かも

Fixed by @mei23

Was this page helpful?
0 / 5 - 0 ratings