I'm currently doing a login portal with ReactJS frontend and NodeJS backend, deployed on an AWS EC2 instance. I have used certbot
to obtain an SSL, and nginx
is able to serve the /build
from the ReactJS app. Now my website is accessible at https://my-website
without any errors.
When it sends API (https://my-website:8080/api
) calls to my server (intialized using PM2), it returns a net::ERR_CERT_AUTHORITY_INVALID
. My server is using corsOptions
with options: https://my-website
.
Is there a specific term or practice I should be doing?
What I've Tried
- Use
certbot
to generate aserver.key
and aserver.pem
, and use thehttps
package to create a server with them, but it returnsnet::ERR_CERT_AUTHORITY_INVALID
. - Used
fs
to open the credentials created for my frontend app, but it returns a permission denied.
I've read that it is not ideal to directly manipulate credentials on the backend, and something along the lines of a reverse proxy should be adopted, however, I am still clueless after reading and trying out. I'd appreciate any help to get this going! Thanks in advance!
My Fix
I simply used the credentials I obtained from certbot
in my server.js
. Here's a snippet:
const credentials = {
key: myKey.pem,
cert: myCert.pem,
ca: myCa.pem
}
https.createServer(credentials, app).listen(PORT)
The main thing is to switch to the root user (sudo su
), else access will be denied to open the file. Hope this helps!