SSl works for frontend but not for backend

Viewed 69

I have a MERN stack website which i use nginx to serve. My backend server is running on port 5000 over http. SSL works fine for my frontend, but i cant make https requests to my express server. How can i solve this issue? Should i use another SSL for my backend?

This is how my express server.js looks like:

const express = require("express");
const dotenv = require("dotenv");
const routers = require("./routers/index");
const connectDatabase = require("./helpers/database/connectDatabase");
const path = require("path");
const cors = require("cors");

// Environment Variables
dotenv.config({
  path: "./config/env/config.env",
});

// MongoDb Conenction
connectDatabase();

const app = express();

// Express - Body Json
app.use(express.json());

const PORT = process.env.PORT;

// CORS
app.use(cors());


// Router Middleware
app.use("/api", routers);



app.listen(PORT, () => {
  console.log(
    `App Started on PORT: ${process.env.PORT} : ${process.env.NODE_ENV}`
  );
});

and this is how nginx/sites-avaliable/my-site.com looks like:

server {

        root /var/www/my-site.com/html;
        index index.html index.htm index.nginx-debian.html;

        server_name my-site.com www.my-site.com;

        location / {
                try_files $uri /index.html;
        }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/my-site.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/my-site.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


}
server {
    if ($host = www.my-site.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = my-site.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


        listen 80;
        listen [::]:80;

        server_name my-site.com www.my-site.com;
    return 404; # managed by Certbot




}
0 Answers
Related