Невозможно получить доступ к веб-приложению через URL. Сбой подключения SSL от Netscaler к серверам приложений
обзор
Я построил и развернул приложение для запуска Springboot на 3 серверах A,B и C (чтение контейнеров) и выставил приложение на порт 8080.
Но не удается получить доступ через URL-адрес (сбой подключения Netscaler SSL к серверам через порт 8080.) Однако, если я отключаю SSL в Netscaler, я могу подключиться
Настроить
а) Я получил 3 SSL сертификата на 3 сервера. Мой докер Frontend находится ниже
FROM 10.16.193.141:9000/iis_proxy
ADD 'certs\' 'C:\certs\'
RUN powershell -NoProfile -Command \
$SecurePassword = ConvertTo-SecureString "SomerandomStringPassword" -AsPlainText -Force; \
Import-PfxCertificate -FilePath 'C:\certs\AppServerrnch01.pfx' -CertStoreLocation Cert:\LocalMachine\My -Password $SecurePassword; \
Import-PfxCertificate -FilePath 'C:\certs\AppServerrnch02.pfx' -CertStoreLocation Cert:\LocalMachine\My -Password $SecurePassword; \
Import-PfxCertificate -FilePath 'C:\certs\AppServerrnch03.pfx' -CertStoreLocation Cert:\LocalMachine\My -Password $SecurePassword; \
Import-Module "WebAdministration"; \
New-Item IIS:\Sites\MyAPP-bindings @{protocol='https';bindingInformation='*:8080:AppServerrnch01.mydomain.name';SslFlags=1} -PhysicalPath C:\site; \
New-WebBinding -Name "MyAPP" -Protocol https -HostHeader AppServerrnch02.mydomain.name -Port 8080 -SslFlags 1; \
New-WebBinding -Name "MyAPP" -Protocol https -HostHeader AppServerrnch03.mydomain.name -Port 8080 -SslFlags 1; \
New-Item -Path "IIS:\SslBindings\*!8080!AppServerrnch01.mydomain.name" -Thumbprint 1F300EC569B3448EE15A54DBCD54647AF8294682 -SslFlags 1; \
New-Item -Path "IIS:\SslBindings\*!8080!AppServerrnch02.mydomain.name" -Thumbprint EAC1CD3520F9810DB30CB2E312E197C637D26253 -SslFlags 1; \
New-Item -Path "IIS:\SslBindings\*!8080!AppServerrnch03.mydomain.name" -Thumbprint 0C7888C0617815997DB6F9DA9E9A03E5921E3BAD -SslFlags 1; \
New-Item C:\site\MyAPP-type directory
COPY MyAPP/ 'C:\site\MyAPP'
RUN powershell -NoProfile -Command \
Start-Job -Name AddWebConfig -ScriptBlock { \
Add-WebConfigurationProperty -pspath 'iis:\sites\MyAPP' -filter 'system.webServer/rewrite/rules' -name '.' -value @{name='Proxy';stopProcessing='True'}; \
}; \
Wait-Job -Name AddWebConfig; \
Set-WebConfigurationProperty -pspath 'iis:\sites\MyAPP' -filter 'system.webServer/rewrite/rules/rule/match' -name 'url' -value '^^MyAPP/api/(.*)'; \
Set-WebConfigurationProperty -pspath 'iis:\sites\MyAPP' -filter 'system.webServer/rewrite/rules/rule/action' -name 'type' -value 'Rewrite'; \
Set-WebConfigurationProperty -pspath 'iis:\sites\MyAPP' -filter 'system.webServer/rewrite/rules/rule/action' -name 'url' -value 'https://lbit.mydomain.name/{R:1}'
EXPOSE 8080
CMD [ "powershell" ]
Я собрал этот файл докера, развернул и выставил на порт 8080.
Когда я пытаюсь получить доступ через Netscaler, я получаю сообщение об ошибке HTTP/1.1 503 Service Unavailable
, Но если я попытаюсь получить доступ к приложению, используя сервер A:8080/app, то он работает нормально.
Теперь, когда я пошел в сетевую команду, они сделали быструю проверку и сказали мне
"Netscaler сообщает, что не может связаться с серверами appserver* через порт 8080. Когда я переключаюсь с монитора SSL на монитор TCP, он подключается. Если SSL включен, возможно, это проблема с настроенными шифрами".
Я проверил SSL-сертификаты, шифры и все, кажется, правильно. Я застрял сейчас.
Обновление 1
Я попросил команду сети отключить SSL в Netscaler, а затем я могу перейти к приложению с помощью URL.
Таким образом, подтверждается, что где-то произошла ошибка при рукопожатии SSL. Я предполагаю, что если сертификат поврежден или если я указал неверный пароль, я не получу это сообщение "сертификат является действительным", когда я перейду к приложению, используя имя сервера:8080/Myapp.
Любая идея или кто-нибудь сталкивался с этой проблемой раньше?
Заранее спасибо.
1 ответ
Снифф проволочной акулы обычно говорит, что не так в рукопожатии.
Однако есть одна вещь, о которой вы должны знать: Netscalers не может общаться с серверами, настроенными с помощью "deny insecure renego" на стороне "Back End". это между netscaler и сервером приложений. Это просто статья о Netscaler.
Netscaler полностью поддерживает это на внешнем интерфейсе (между клиентом и netscaler).
это может быть причиной у вас проблемы. если не захватить рукопожатие. доказательство в пудинге. (захват проволочной акулы)