Включить https в докеризованном приложении Mern? Цифровой океан - PullRequest
0 голосов
/ 03 августа 2020

Я создал приложение стека MERN и разделил мой Nodejs (express) сервер и мой интерфейс React в отдельные docker контейнеры и могу запускать их с помощью файла набора.

im в надежде запустить его в производство на Digital Ocean Droplet под управлением docker / docker -compose, и мне интересно, как защитить его с помощью ssl? мне нужно активировать сертификаты для каждого контейнера или только для капли.

при изучении этого топа c я вижу много людей, использующих Nginx внутри своего внешнего интерфейса (React), но я не уверен, как это связано?

1 Ответ

1 голос
/ 03 августа 2020

Наиболее распространенный способ обработки SSL - это добавить Reverse Proxy (например, Nginx) для разгрузки SSL для всей вашей среды.

                    +----------+
                    |          |
                    |  Client  |
                    |          |
                    +----+-----+
                         |
                         | myDomain.net
                         |              
                     [INTERNET]
                         |
                         |
                         v  :443
                +--------+-------+
            /*  |                |   /api
     +----------+  Revese Proxy  +---------+
     |          |   (Gateway)    |         |
     |          +----------------+         |
     |                                     |
     |                                     |
     | :8080                               | :3000
     |                                     |
+----+----------+                +---------+-----+
|               |                |               |
|      SPA      |                |    Backend    |
|  (webserver)  |                |  (API server) |
|               |                |               |
+---------------+                +---------------+

Вам нужно будет добавить дополнительный компонент к вашему сочинению. Вы можете называть его gateway. Теперь вы можете передать SSL в качестве секрета, и теперь он будет действовать как промежуточное ПО для вашей сети, которое шифрует исходящие данные и расшифровывает входящие.

Я нашел руководство, которое может хорошо подойти для вашей установки: https://medium.com/@pentacent / nginx -and-let-encrypt-with- docker -in-less-than-5-minutes-b4b8a60d3a71

...