Cloudflare bare domain configuration

tony-hunterHOBBY

8 months ago

Hi folks,

Have struggled to get my bare domain and www. working with Cloudflare, have read the Railway docs, and Cloudflare ones, and have tried many different settings, have ended up giving up, and now I'm here.

Here are the latest steps I've followed, could you please tell me where I'm going wrong?

  1. In Railway: add a custom domain for [mydomain.com](mydomain.com)

  2. In Cloudflare: add a CNAME for Name = @, target = .[up.railway.app](up.railway.app) -> the name of this DNS record automatically changes to [mydomain.com](mydomain.com)

  3. In Railway: add a custom domain for www.[mydomain.com](mydomain.com)

  4. In Cloudflare: add a CNAME for Name = www, target = .[up.railway.app](up.railway.app)

After these steps, I can see Cloudflare proxy detected on both custom domains in Railway.

Both my CNAME records are Proxied on Cloudflare.

When I do this, the www. version works, the bare domain doesn't (I get 'this site can't be reached' in the browser).

I've tried changing SSL/TLS mode from Full to Flexible in Cloudflare, still doesn't work. I've tried disabling Universal SSL/re-enabling, same thing.

I only have one other DNS record, which is a TXT to auth with another service.

Any help appreciated!

Project ID: c18400df-5dee-4fe7-bc56-a98db8d475bd

0 Replies

tony-hunterHOBBY

8 months ago

(FYI, I've just gone through this again while writing this, and now the bare domain works and the www. doesn't ๐Ÿ™ˆ )


8 months ago

If you want both to work like that then you'll need to add two custom domains, a [www.[mydomain.com](mydomain.com)](www.[mydomain.com](mydomain.com)) one and a [mydomain.com](mydomain.com) one

Although my recommendation would be to choose one of them and then have the other redirect to your chosen one, this keeps things more consistent


tony-hunterHOBBY

8 months ago

I have two custom domains


tony-hunterHOBBY

8 months ago

I'd be happy to do the redirect - I have tried that in Cloudflare using a Redirect Rule - I think I must have done that wrong, as it didn't work


8 months ago

Oh I see now, sorry I misread ๐Ÿ™
Based on how you set it up, it should work ๐Ÿค”

Quick side note here:

I've tried changing SSL/TLS mode from Full to Flexible in Cloudflare, still doesn't work
SSL/TLS mode should always be on full when on Railway


tony-hunterHOBBY

8 months ago

Full strict, or just Full?


8 months ago

Just Full is fine


tony-hunterHOBBY

8 months ago

cool


tony-hunterHOBBY

8 months ago

if you're doing the redirect, is the best thing to set up a custom domain for the bare, or for www., domain in railway?


8 months ago

that's completely up to you, personally I like it when websites don't use www but that's just personal preference ๐Ÿคฃ


tony-hunterHOBBY

8 months ago

and you set up the redirect in Cloudflare using a Redirect Rule?


tony-hunterHOBBY

8 months ago

also, should Universal SSL be on?


8 months ago

I believe so, although I'm not very experienced with Cloudflare so I can't really help a lot in that context


8 months ago

No, that should be turned off


tony-hunterHOBBY

8 months ago

ok, so I've just:

  1. Removed my custom domains

  2. Added mydomain.com (the bare url)

  3. Added a CNAME for @ and .[up.railway.app](up.railway.app) to Cloudflare

  4. Disabled Universal SSL

and now none (www.mydomain.com, http://mydomain.com, https://mydomain.com and https://www.mydomain.com) of my urls are working


8 months ago

Would you mind sharing the domain you're using?


tony-hunterHOBBY

8 months ago

DMd


8 months ago

Seems the cause is a ERR_SSL_VERSION_OR_CIPHER_MISMATCH, usually these resolve themselves and are usually caused by SSL cache


tony-hunterHOBBY

8 months ago

interesting - when I do:

$ curl -I -L https://mydomain.com curl: (35) LibreSSL/3.3.6: error:1404B410:SSL routines:ST_CONNECT:sslv3 alert handshake failure

and

```$ curl -I -L mydomain.com
HTTP/1.1 301 Moved Permanently
Date: Fri, 09 Aug 2024 15:54:23 GMT
Content-Type: text/html
Content-Length: 167
Connection: keep-alive
Cache-Control: max-age=3600
Expires: Fri, 09 Aug 2024 16:54:23 GMT
Location: https://shareapodcast.com/
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=RAt5pqcLCaUK3nHvDZkqM%2FyafZDuw3THGN8Km4eT9OpTLz4B8r2%2FHLyH%2FrfMWdd2GNyrnv3XeinvtjYJOGLlId2oukEQcfXPIGn%2FC3Lx3%2BL3vteuwTRHCH%2BFwAaztN7Kt%2FSLmw%3D%3D"}],"group":"cf-nel","maxage":604800} NEL: {"successfraction":0,"reportto":"cf-nel","maxage":604800}
Server: cloudflare
CF-RAY: 8b08eca85d4d949f-LHR
alt-svc: h3=":443"; ma=86400

curl: (35) LibreSSL/3.3.6: error:1404B410:SSL routines:ST_CONNECT:sslv3 alert handshake failure```


8 months ago

I ran a DNS check on the domain and I'm not seeing any CNAMEs on it ๐Ÿค”


8 months ago

who do you own the domain with?


tony-hunterHOBBY

8 months ago

bought on GoDaddy, DNS transfer to Cloudflare


tony-hunterHOBBY

8 months ago

I've just reenabled Universal SSL and my bare domain url works again


dane-stevensPRO

8 months ago

Easiest thing is to point your bare domain at railway, and point www at your bare domain:

1271498974121169000


tony-hunterHOBBY

8 months ago

hmm the plot thickens, this is something I haven't tried


tony-hunterHOBBY

8 months ago

back in 5 mins


dane-stevensPRO

8 months ago

If that doesn't work, you can also redirect www to your bare domain: https://developers.cloudflare.com/pages/how-to/www-redirect/


tony-hunterHOBBY

8 months ago

this doesn't seem to work for me: bare domain does, www. doesn't


tony-hunterHOBBY

8 months ago

trying second suggestion, thank you Dane


dane-stevensPRO

8 months ago

I just set one up, had to point the www domain at the bare domain, and add the bulk redirect.

The DNS record on the www just allows Cloudflare to listen on www (they are pointing it to a dummy IP), using a CNAME record pointing to the bare domain works as well.


tony-hunterHOBBY

8 months ago

it works!!


tony-hunterHOBBY

8 months ago

Dane, thank you, you are a hero


dane-stevensPRO

8 months ago

I think that's the cleanest solution as you are also telling google not to index the www because of the 301 redirect


tony-hunterHOBBY

8 months ago

thank you so much; I really appreciate your help


8 months ago

can you DM your domain?


8 months ago

nvm i can grab it from your service


tony-hunterHOBBY

8 months ago

yeah it's there


8 months ago

show me your dns in cloudflare?


tony-hunterHOBBY

8 months ago

DMd


8 months ago

ssl tls mode set to full?


tony-hunterHOBBY

8 months ago

ah man I've just deployed and I now get a 404


tony-hunterHOBBY

8 months ago

annnd it's back


8 months ago

universal ssl off? this should be on, dane is right


tony-hunterHOBBY

8 months ago

SSL/TSL = Full, Universal is off


dane-stevensPRO

8 months ago

Universal SSL should be on (unless you have an advanced certificate). The hosts on your universal ssl should be *.[example.com](example.com), [example.com](example.com) to include www.
SSL = Full


dane-stevensPRO

8 months ago

The connection from Cloudflare to Railway is over SSL, so you need SSL = Full.
Full (strict) is only when you are using a cloudflare origin cert on Railway (can be done through a cloudflare warp tunnel)


tony-hunterHOBBY

8 months ago

turning Universal SSL on stops my www. -> bare domain redirect working


tony-hunterHOBBY

8 months ago

(unless there's an amount of time I need to wait after enabling it)


dane-stevensPRO

8 months ago

There usually is a bit of a time delay. Do you have an advanced certificate as well, or just universal?


tony-hunterHOBBY

8 months ago

whatever is out of the box/free, I guess universal?


dane-stevensPRO

8 months ago

ok, so you would need to have universal enabled as that is the only certificate encrypting your connection between the browser and cloudflare.
Do you have the orange cloud turned on for your bare domain and www?


tony-hunterHOBBY

8 months ago

I only have one CNAME now, for @ (which replaces with mydomain.com) and yes, proxied/orange cloud is on


dane-stevensPRO

8 months ago

You probably need to add a cname for www pointing to @ as well


tony-hunterHOBBY

8 months ago

done: now, with www. I get "This site canโ€™t be reached" / "DNSPROBEFINISHED_NXDOMAIN"


dane-stevensPRO

8 months ago

what's your domain?


tony-hunterHOBBY

8 months ago

DMd


dane-stevensPRO

8 months ago

You may just need to wait a bit


dane-stevensPRO

8 months ago

both www and bare domain are coming up fine for me


tony-hunterHOBBY

8 months ago

really


tony-hunterHOBBY

8 months ago

hmm


tony-hunterHOBBY

8 months ago

I've just flushed my DNS and looks like it's working for me too


tony-hunterHOBBY

8 months ago

it's always DNS


dane-stevensPRO

8 months ago

Glad it's working! DNS is a pain for sure, especially when you add on proxies and SSL rules


tony-hunterHOBBY

8 months ago

๐Ÿ™


tony-hunterHOBBY

8 months ago

@Brody if it's useful, LMK if you'd like me to write up the steps I (Dane) just took to make this work, for this page: https://docs.railway.app/guides/public-networking


8 months ago

catch me up, what was the final nail in the coffin to make this work?


tony-hunterHOBBY

8 months ago

I had to

  1. create a custom domain in railway for my bare domain

  2. create a CNAME for bare domain, pointing to the railway host

  3. create a CNAME for www pointing to @

  4. enable Universal SSL

  5. create a bulk redirect pointing www. to bare domain


tony-hunterHOBBY

8 months ago

going to check out for now and hope nothing breaks - thanks again Dane


8 months ago

i would love a pr to add that to the docs


tony-hunterHOBBY

8 months ago

Yeah I can do that, whereโ€™s the repo?


8 months ago

scroll down

1271514483730288600


tony-hunterHOBBY

8 months ago

@Brody have submitted PR


8 months ago

awesome, I will look at that


8 months ago

merged, thanks again!


Cloudflare bare domain configuration - Railway Help Station