SSL в приложении React, Express (Graphql) на одном сервере с NGINX - PullRequest
0 голосов
/ 19 февраля 2019

Итак, у меня есть приложение реакции, работающее в https://ip.com:443, и оно работает, у меня также есть приложение в http://ip.com:80, которое перенаправляет трафик на 443, у меня также есть экспресс-сервер, работающий на http://ip:8080.Приложение реакции имеет ssl, и когда я запускаю сборку, оно работает нормально, я могу использовать приложение реагирования, но когда я пытаюсь сделать что-то, включающее сервер, выборку данных или что-то еще, это просто говорит мне, что мое соединение не защищено ичто если я хочу продолжить, я должен разрешить это небезопасное приложение.Я просто новичок в этом, и у меня есть некоторые проблемы с пониманием, как это работает, у меня есть это как мой файл nginx для клиента

server {
        listen 80;
        # where the root here
        root /usr/share/nginx/html;
        # what file to server as index
        index index.html index.htm;

        location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to redirecting to index.html

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

        # Media: images, icons, video, audio, HTC
        location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
          expires 1M;
          access_log off;
          add_header Cache-Control "public";
        }

        # Javascript and CSS files
        location ~* \.(?:css|js)$ {
            try_files $uri =404;
            expires 1y;
            access_log off;
            add_header Cache-Control "public";
        }

        # Any route containing a file extension (e.g. /devicesfile.js)
        location ~ ^.+\..+$ {
            try_files $uri =404;
        }
        return 301 https://name.com$request_uri;   
  }

  server {
        # listen on port 443
          listen 443 ssl;
        listen [::]:443 ssl;
        server_name         name.com;
        ssl on;
        ssl_certificate     name.chained.crt;
        ssl_certificate_key name.key;
        ssl_session_cache shared:SSL:20m;
        ssl_session_timeout 60m;

        ssl_prefer_server_ciphers on;

        ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DHE+AES128:!ADH:!AECDH:!MD5;

        ssl_dhparam /etc/nginx/params.pem;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

        ssl_stapling on;
        ssl_stapling_verify on;
        resolver 8.8.8.8 8.8.4.4;

        #add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
        add_header Strict-Transport-Security "max-age=31536000" always;

        # where the root here
        root /usr/share/nginx/html;
        # what file to server as index
        index index.html index.htm;
        location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to redirecting to index.html

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

        # Media: images, icons, video, audio, HTC
        location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
          expires 1M;
          access_log off;
          add_header Cache-Control "public";
        }

        # Javascript and CSS files
        location ~* \.(?:css|js)$ {
            try_files $uri =404;
            expires 1y;
            access_log off;
            add_header Cache-Control "public";
        }

        # Any route containing a file extension (e.g. /devicesfile.js)
        location ~ ^.+\..+$ {
            try_files $uri =404;
        }
  }

Так что я не знаю, нормально ли это, но это вменьше всего работает, для ssl в экспресс-сервере, который не работает, у меня есть это

const server = new GraphQLServer({
  schema,
  context: req => ({
    ...req,
    db: prisma
  }),
  uploads: false
})

const options = {
  port: 8080,
  https: {
    cert: fs.readFileSync(path.resolve(__dirname, 'name.chained.crt')),
    key: fs.readFileSync(path.resolve(__dirname, 'name.key'))
  },
  cors: {
    credentials: true,
    origin: ['https://name.com']
  },
  uploads: false,
  formatError
}
server.createHttpServer(options)

server.use(helmet())
server.start(({ port }) =>
  console.log(
    `Server started, listening on port ${port} for incoming requests.`
  )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...