У нас есть прототип, в котором Nginx действует как терминатор SSL балансировщика нагрузки. За Nginx стоит GlassFish 3, на которой наши веб-службы REST работают через HTTP (без SSL) вместе с другими серверами приложений.
Все запросы на https://api.example.com перенаправляются на GlassFish.
Прямо сейчас это работает на том же сервере, поэтому у нас нет особых проблем с безопасностью (порты приложений GlassFish заблокированы для удаленного доступа).
Однако нам нужно будет масштабировать это в ближайшее время, и балансировщик нагрузки (Nginx или что-то еще) нужно будет перенести на другой сервер.
У меня нет большого опыта в настройке сертификатов SSL, поэтому мне было интересно, какие у нас будут варианты:
Буду очень признателен за вашу помощь.
Следует ли устанавливать SSL-сертификаты для GlassFish Server (возможно, самоподписанные сертификаты), чтобы гарантировать SSL / TLS-соединение после прохождения балансировщика нагрузки?
Если у вас есть подстановочный SSL-сертификат для * .example.com, тогда вы можете избежать самозаверяющего сертификата. Вы можете указать имя хоста glassfish как поддомен example.com (например, glassfish.example.com). Тогда вы можете использовать proxy_ssl_verify для предотвращения атаки MITM и обеспечения безопасного соединения между балансировщиком нагрузки и Glassfish.
Если вы должны использовать самозаверяющий сертификат, добавление этого сертификата в список доверенных и позволяя proxy_ssl_verify должен делать свою работу.
Nginx имеет сертификат SSL * .example.com. Можно ли использовать один и тот же сертификат SSL с двумя разными веб-серверами, чтобы Glassfish мог напрямую получать запросы HTTPS для поддомена (https://api.example.com) без прохождения через Nginx или какой-либо другой балансировщик нагрузки.
Если вы имеете в виду подстановочный SSL-сертификат, тогда ДА, вы можете установить тот же сертификат.