Обеспечение SSL запрашивает с mod_cluster?

Ежемесячно:

  • рассмотрите использование инфраструктуры - это возможно смешано в с 'улучшениями инфраструктуры плана', укусил, но Вы не можете планировать, если Вы не знаете (т.е. 'имеют точные данные'), каким битам нужно улучшение.

Ежеквартально:

  • Тестовая обработка отказа Инфраструктуры - от слоя приложения (веб-сервер, электронная почта) к сетевому уровню (переключатель, сетевой канал) к физическому уровню (питание), если у Вас есть дублирование в системе, что Вы ожидаете мочь сохранить Вас, это должно сохраняться и периодически тестироваться.
1
задан 18 September 2012 в 22:37
2 ответа

По умолчанию mod_cluster разрывает ваше SSL-соединение и передает информацию на бэкэнд в незашифрованном виде. См. Инструкции http://docs.jboss.org/mod_cluster/1.0.0/html/UsingSSL.html .

Обратите внимание на раздел 12.2, в котором показана дополнительная конфигурация, необходимая для использования SSL между прокси-сервером и серверная служба. В разделе 12.3 показано, как пересылать информацию о прерванном сеансе SSL, если у вашего приложения есть причины для этого.

2
ответ дан 3 December 2019 в 16:48

вы можете либо

  1. защитить только соединение от клиентов с вашим балансировщиком, либо сделать сеть балансировщиков - работников надежной:

    клиент <--SSL--> балансировщик <- AJP / HTTP -> worker

  2. , или вы можете защитить весь путь (примечание: Balancer на самом деле является атакой ManInTheMiddle по определению :-), поэтому вам придется неявно доверять своему балансировщику worker ...)

    client < --SSL -> balancer <--SSL--> worker

Вариант 2) имеет серьезные недостатки в производительности. Я покажу вам, как сделать и то, и другое:

1) httpd:

<IfModule manager_module>
  Listen 8888
  ManagerBalancerName qacluster
  <VirtualHost localhost:8888>
  ServerName localhost:8888
    <Directory />
      Order deny,allow
      Deny from all
      Allow from all
    </Directory>

    ServerAdvertise on
    EnableMCPMReceive
    AdvertiseGroup 224.0.1.105:6666

    <Location /mcm>
      SetHandler mod_cluster-manager
      Order deny,allow
      Deny from all
      Allow from all
   </Location>

   SSLEngine on
   SSLCipherSuite AES128-SHA:ALL:!ADH:!LOW:!MD5:!SSLV2:!NULL
   SSLVerifyDepth 10
   SSLCertificateKeyFile /home/karm/Server/server.key
   SSLCertificateFile /home/karm/Server/server.crt
   SSLCACertificateFile /home/karm/Server/myca.crt
   LogLevel debug

  </VirtualHost>
</IfModule>

AS7:

<subsystem xmlns="urn:jboss:domain:modcluster:1.1">
    <mod-cluster-config advertise-socket="modcluster" advertise="true" sticky-session="true" sticky-session-remove="false" sticky-session-force="false" connector="ajp">
        <dynamic-load-provider history="10" decay="2">
            <load-metric type="busyness"/>
        </dynamic-load-provider>
        <ssl key-alias="javaclient" password="tomcat" certificate-key-file="/home/karm/Client/client-cert-key.jks" cipher-suite="AES128-SHA:ALL:!ADH:!LOW:!MD5:!SSLV2:!NULL" ca-certificate-file="/home/karm/Client/ca-cert.jks"/>
    </mod-cluster-config>
</subsystem>

Теперь AS7 использует HTTPS только для отправки сообщений Mod_cluster в балансировщик. Другой балансировщик -> Связь AS7 (например, запросы клиента) не зашифрована, потому что он использует AJP.

2) httpd:

+++
SSLEngine on   
+SSLProxyEngine On
+++

AS7:

+++
-<connector name="ajp" protocol="AJP/1.3" scheme="ajp" socket-binding="ajp"/>
+<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
+    <ssl name="https" key-alias="javaclient" password="tomcat" certificate-key-file="/home/karm/Client/client-cert-key.jks" cipher-suite="AES128-SHA:ALL:!ADH:!LOW:!MD5:!SSLV2:!NULL" protocol="TLS" verify-client="false" certificate-file="/home/karm/Client/client-cert-key.jks" ca-certificate-file="/home/karm/Client/ca-cert.jks"/>
+</connector>
+++
-<mod-cluster-config advertise-socket="modcluster" advertise="true" sticky-session="true" sticky-session-remove="false" sticky-session-force="false" connector="ajp">
+<mod-cluster-config advertise-socket="modcluster" advertise="true" sticky-session="true" sticky-session-remove="false" sticky-session-force="false" connector="https">
+++

Что касается 2)

  • Примечание verify-client = "false", вы не можете проверить клиента, поскольку запрос проходит через балансировщик ...
  • Обратите внимание на производительность drop.
  • Обратите внимание на неприятную ошибку https://issues.jboss.org/browse/JBPAPP-9493 (вероятно, влияет и на текущий Mod_cluster)

HTH

Ура

4
ответ дан 3 December 2019 в 16:48

Теги

Похожие вопросы