#How can I access to the SLL certificate file? My app config requires it

75 messages · Page 1 of 1 (latest)

pulsar sandal
#

I have a bun app, that seems to require the full path to a certificate. Where could I get that ?

Thanks

clever laurelBOT
#

Project ID: N/A

pulsar sandal
#

Essentially I need to provide a path here

round nova
#

railway handles that for you, do not try to start an https server

pulsar sandal
#

Thanks Brody, so what am I supposed to return from the server file ?

round nova
#

just dont do any tls stuff, start a plain old http server

pulsar sandal
#

I have a werid issue where all HTTPS call get redirected to HTTP

round nova
#

can you give me a link to where i can see that behavior?

pulsar sandal
round nova
#

thats just a 404 though

pulsar sandal
#

Can't seem to reproduce from the browser, but the Bun app, thinks that request.url is http

#

so whenever url.origin is used, it output http instead of https

round nova
#

the bun app that you have deployed to railway thinks that the incoming requests are http?

pulsar sandal
#

correct

round nova
#

well because they are

#

your app would need to trust the proxy headers, X-Forwarded-For and X-Forwarded-Proto

#

X-Forwarded-Proto would always be set to https

pulsar sandal
#

Any idea on how to do that ?

round nova
#

im sure bun has docs for that

pulsar sandal
#

looking it up

#

Does that look like the right place to do that ?

round nova
#

no?

pulsar sandal
#

Sorry I am lost. Is X-Forwarded-Proto: https a header I should add somewhere ?

round nova
#

do some research on trusting proxy headers

#

doesnt need to be in the context of bun, just in general so you get an understanding of what it means

pulsar sandal
#

God I hate devops 😄

#

Just for the quick tip, is that a header I should send from the client ?

round nova
#

always more stuff to learn eh?

#

no, railway's proxy sets the header, your bun app needs to read from it so that it knows the requests where made from https

pulsar sandal
#

Alright, will do some (more) research. Thanks a lot Brody !

round nova
#

not at all

#

why does it even matter in your case that requests come in as http? is this posing some real problem?

pulsar sandal
#

Yes it does, a whole lot of headach

#

burnt the whole day on this

round nova
#

why does it matter if the incoming requests are http or https

pulsar sandal
#

As I understand it's the server that has to acknowlege that header right ?

#

Cause the client then send HTTP, which get redirected to HTTPS, which doesn't work for POST request

round nova
#

why is their any redirection?

#

the client should make https calls, not http calls

pulsar sandal
#

Railway does that no ?

round nova
#

not unless you are doing something wrong

pulsar sandal
#

That gets redirected no ? I am just spining up a container that works fine locally, no fancy config at all

round nova
#

why are you making requests with http

pulsar sandal
#

Because the library I am using, relies on Hono request data to create URLs for the client. If hono says that's HTTP, then all my links are HTTP

#

If you know farcaster, this is a setup for farcaster frames

round nova
#

okay now thats a good explanation

#

right so we are back to trusting the proxy headers

#

you figure out how to trust the proxy headers, then hono will see the request as https and make the correct URLs

pulsar sandal
#

But that's gotta be on Hono side right, if they don't have support for this then I am stucked ?

round nova
#

you can always write your own middleware that does this

pulsar sandal
#

So the idea is, request comes in, check the header, then somehow force Hono to acknowledge this as legitimate https

round nova
#

basically yeah, you are able to set values in the request object before hono comes into play, you read the protocol from the header and set the protocol in the request object in a middleware, then when hono comes into play it will read the protocol and create the correct URL

pulsar sandal
#

That makes. I got the first part down. I get the IP this way, so now I have to check thats its a valid domain (will worry about that later) then update the request, correct?

round nova
#

where do domains come into play here

#

also that middleware purely prints the IP, it doesn't actually set the IP in the request object

pulsar sandal
#

Yes, that's the missing bit I am tryiing to figure that out

#

Never mind the domain (sorry I am being thick here)

#

I haven't touched a container in years, I was hoping devops got easier since then

#

To be fair, Railway is awesome

round nova
#

haha this is just normal running your app behind a proxy stuff, I'm surprised there isn't a package to do this for you

#

express has a dead simple way of doing it that's literally one line

pulsar sandal
#

yea, no info whatsoever on the subject, it's crazy

#

Everything is read only on the request object 😦

#

Ok looks like that did it

round nova
#

okay now just read the value from the header and fallback to http if there is no header

pulsar sandal
#

got it, if x-forwarded-for is in there, the use https

#

Thanks a tone Brody, saved me hours for sure

round nova
#

if the header is there, then use the headers value

pulsar sandal
#

Right, this makes sense

round nova
#

if there's no header then don't do anything with it as the default value of http will be correct