Skip to content

Error dereference WebId #23

@frederikbyl

Description

@frederikbyl

Dear,

I have a setup with 3 docker containers: one client, one server and one nginx to set a self signed ssl certificate and route trafic coming on https://server.xxxxx to the solid server and https://client.xxxxx to the solid client.
I used this example setup: https://solidproject.org/self-hosting/css/nginx
Everything seems to work, I can reach my solid client and login, I can reach my solid server and create a pod, but when I want to get data or store data, I get the following error in the server log:

warn: Error verifying WebID via DPoP-bound access token: The WebID could not be dereferenced. solid-server_1 | Actual: https://server.xxxxxx/frederik/profile/card#me solid-server_1 | Expected: A dereferenceable resource

The problem was that I was using a self signed certificate via nginx reverse proxy. I had to add some extra logging to get the stack trace and then I noticed:

solid-server_1 | Expected: A dereferenceable resource solid-server_1 | at dereferenceWebid (/community-server/node_modules/@solid/access-token-verifier/dist/algorithm/retrieveWebidTrustedOidcIssuers.js:15:15) solid-server_1 | at processTicksAndRejections (node:internal/process/task_queues:96:5) solid-server_1 | at async retrieveWebidTrustedOidcIssuers (/community-server/node_modules/@solid/access-token-verifier/dist/algorithm/retrieveWebidTrustedOidcIssuers.js:22:24) solid-server_1 | at async WebIDIssuersCache.getIssuers (/community-server/node_modules/@solid/access-token-verifier/dist/class/WebIDIssuersCache.js:17:34) solid-server_1 | at async verifySolidAccessToken (/community-server/node_modules/@solid/access-token-verifier/dist/algorithm/verifySolidAccessToken.js:39:21) solid-server_1 | at async DPoPWebIdExtractor.handle (/community-server/dist/authentication/DPoPWebIdExtractor.js:47:28) solid-server_1 | at async Promise.all (index 0) solid-server_1 | at async UnionCredentialsExtractor.handleSafe (/community-server/dist/util/handlers/UnionHandler.js:56:25) solid-server_1 | at async AuthorizingHttpHandler.handle (/community-server/dist/server/AuthorizingHttpHandler.js:27:29) solid-server_1 | at async ParsingHttpHandler.handle (/community-server/dist/server/ParsingHttpHandler.js:28:22) solid-server_1 | at async SequenceHandler.handle (/community-server/dist/util/handlers/SequenceHandler.js:27:26) solid-server_1 | at async Server.<anonymous> (/community-server/dist/server/BaseHttpServerFactory.js:33:17)

Then I had to npm install https://www.npmjs.com/package/rdf-dereference and I executed the call via cli getting the error:

FetchError: request to https://server.xxxxxxxxxxxxxxx/profile/card#me failed, reason: self signed certificate at ClientRequest.<anonymous> (XXXXXXXXXXXXXXXXXXX\npm\node_modules\rdf-dereference\node_modules\node-fetch\lib\index.js:1461:11) at ClientRequest.emit (events.js:400:28) at TLSSocket.socketErrorListener (_http_client.js:475:9) at TLSSocket.emit (events.js:400:28) at emitErrorNT (internal/streams/destroy.js:106:8) at emitErrorCloseNT (internal/streams/destroy.js:74:3) at processTicksAndRejections (internal/process/task_queues.js:82:21) { type: 'system', errno: 'DEPTH_ZERO_SELF_SIGNED_CERT', code: 'DEPTH_ZERO_SELF_SIGNED_CERT'

But this was not obvious from the error message that was logged in the server log. It would help a lot in case of error, that stack traces or more info on the error is logged. I would also suggest to log this as error and not as warn. Thanks!!

Original message:
https://forum.solidproject.org/t/error-dereference-webid/4946

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions