2

Я успешно получил свое приложение для работы с балансировщиком нагрузки. В качестве меры сокращения расходов я перемещаю свое приложение на один экземпляр на Amazon AWS Elastic Beanstalk.установка гравировка пружинная защита на одном экземпляре эластичная фасоль

Я был в состоянии создать файл .ebextensions с singlessl.config и правильно получить мой SSL сертификат для работы в файле WAR вручную собирается https://www.example.com/login

Так что я знаю, что моя война файл/SSL работают на один экземпляр.

То, что я не смог получить, - это заставить весеннюю безопасность работать.

Независимо от того, какую конфигурацию конфигурации я стараюсь, браузер всегда умирает с ошибкой слишком много переадресаций. Это происходит, когда я печатаю только домашнюю страницу для приложения без https (http://example.com)

Я думаю, что перенаправления идут от http до https и обратно, или что-то в приложении/apache/tomcat, идущем между разными портами.

Есть что-то неладное между весной безопасности, apache и/или tomcat, но я не уверен, что.

На этом этапе, если весь сайт защищен, я бы взял это вместо надежных/незащищенных страниц.

Мои Grails весна конфигурации безопасности (последний вариант я пробовал, там было около 10, я пытался) является:

grails.serverURL = "https://www.example.com" 
grails.plugins.springsecurity.portMapper.httpPort = 80 
grails.plugins.springsecurity.portMapper.httpsPort = 443 
grails.plugins.springsecurity.auth.forceHttps = true 
grails.plugin.springsecurity.secureChannel.definition = [ 
     '/**': 'REQUIRES_SECURE_CHANNEL' 

Есть ли что-то я должен сделать в Tomcat или Apache, чтобы получить эту работу в эластичном бобовом стебле?

+0

Я знаю, что у вас есть только 1 экземпляр, но ваш экземпляр за ELB? У меня были сложные ситуации с перенаправлением HTTP, если у балансира нагрузки есть завершение SSL, все вызовы достигают веб-сервера по HTTP, и это вызывает цикл перенаправления. (Я должен был проверить заголовок X_Forwarded_Proto вместо входящего порта.) –

+0

Я пытаюсь удалить балансировщик нагрузки, поэтому мне не нужно платить 2 раза. Все работает нормально с балансировщиком нагрузки. Все это разваливается, когда я перехожу к одному экземпляру. X_Forwarded_Proto не применяется в одном экземпляре. – spock99

+0

Вы, очевидно, перенаправляете слой Grails. У вас есть что-нибудь на уровне tomcat/beanstalk? Можете ли вы подтвердить, что у вас нет передней панели ELB для одного экземпляра? –

ответ

0

Проверить here для обеспечения безопасности безопасности канала безопасности. Кроме того, вы, возможно, потребуется предоставить:

grails.plugin.springsecurity.secureChannel.useHeaderCheckChannelSecurity = true 
grails.plugin.springsecurity.secureChannel.secureHeaderName = 'X-Forwarded-Proto' 
grails.plugin.springsecurity.secureChannel.secureHeaderValue = 'http' 
grails.plugin.springsecurity.secureChannel.insecureHeaderName = 'X-Forwarded-Proto' 
grails.plugin.springsecurity.secureChannel.insecureHeaderValue = 'https' 

В .ebextensions, вы можете разместить server.xml для которых:

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> 
<!-- Add this line --> 
    <Valve className="org.apache.catalina.valves.RemoteIpValve" protocolHeader="X-Forwarded-Proto" internalProxies="10\.\d+\.\d+\.\d+|192\.168\.\d+\.\d+|169\.254\.\d+\.\d+|127\.\d+\.\d+\.\d+|172\.(1[6-9]|2[0-9]|3[0-1])\.\d+\.\d+" /> 

    </Host> 

быть применен к контейнеру сервера, как мартовский кот. У меня мало знаний о internalProxies.

Смежные вопросы