Error configuring custom domain to a canister

I am trying to host a canister under a custom domain following this documentation here Internet Computer Loading.

I am using goDaddy, I tried to set the DNS records correctly as per the documentation.
I then created the .well-known directory in the root directory, the one with the dfx.json file. Inside it I created the ic-domains as a plain file without any file type extension and put my custom domain name lilke foo.bar.com .
I aslo created the .ic-assets.json file in same root directory with the .well-known directory. and the dfx.json file and put the contents:

[
    {
        "match": ".well-known",
        "ignore": false
    }
]

and then deployed the canister on the ic.
That’s pretty much all the setup I followed, but now when I start the registration process with the following commnand:

curl -sLv -X POST \
    -H 'Content-Type: application/json' \
    https://icp0.io/registrations \
    --data @- <<EOF
{
    "name": "<custom_domain>"
}
EOF

I am gettin a bunch of data for the request and then finally this:

< 
* Connection #0 to host icp0.io left intact
domain is missing from canister j62gc-2iaaa-aaaal-qbynq-cai list of known domain

This is where I am stuck, My guess is that maybe I put the .well-known directory and the
.ic-assets.json at wrong places. Where am I going wrong?
Thank you.

Looks like indeed your https://j62gc-2iaaa-aaaal-qbynq-cai.icp0.io/.well-known/ic-domains file is not available.

Have recently answered a question about where to put the file, maybe you find something there?

3 Likes

Thank you, that worked and I got the ID back and then I run this command:

curl -sLv -X GET \
    https://icp0.io/registrations/ID

But the process have failed, I got this response back:

{"name":"todo.enochchirima.com","canister":"j62gc-2iaaa-aaaal-qbynq-cai","state":{"Failed":"failed to create acme order"}}

What could be wrong now?

1 Like

I run the command again, it returned Available, its working now.

1 Like

@peterparker , The custom domain is working now, but it seems like the frontend canister have lost its connection with the backend canister, It’s no longer querying items from backend if I access it using the custom domain name, but still working well if I use the canister id url, what other changes must I do so that the frontend and backend canisters keeps communicating with this new domain? I tried adding the new domain name to the CSP headers in the ic-assets.json file but it seems to have done nothing.
Thanks

@iamenochchirima

Are you saying that:

  • https://todo.enochchirima.com → cannot connect to backend :x:
  • https://j62gc-2iaaa-aaaal-qbynq-cai.icp0.io → can connect to backend :white_check_mark:

Do I get it right?

If yes, that’s maybe an issue with the HttpAgent. Try to path https://icp0.io as host for mainnet.

e.g.

new HttpAgent({ identity, host: 'https://icp0.io' });
2 Likes

Yes that was the case, I implimented like that and it’s working now. Thanks again

1 Like

Awesome, happy to hear that :smiley: