- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
概览
我在 3 台服务器机器 A、B 和 C(读取容器)上构建并部署了一个 dockerized springboot 应用程序,并在端口 8080 上公开了应用程序。
但无法通过 url 访问(Netscaler SSL 连接到端口 8080 的服务器失败。)但是如果我在 Netscaler 中关闭 SSL,我可以连接
设置
a) 我为 3 个服务器获得了 3 个 SSL 证书。我的前端 docker 文件在下面
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" ]
我构建了这个 docker 文件,部署并暴露在端口 8080 上。
当我尝试通过 Netscaler 访问时,出现错误 HTTP/1.1 503 Service Unavailable
。但是如果我尝试使用服务器 A:8080/app 访问该应用程序,那么它工作正常。
现在当我去网络团队时,他们快速检查并告诉我
"Netscaler is reporting that it can’t contact the appserver* servers on port 8080.When I switch from an SSL monitor to a TCP monitor, it connects. If SSL is enabled, then maybe it is an issue with the configured Ciphers."
我检查了 SSL 证书、密码,一切似乎都是正确的。我现在卡住了。
更新 1
我要求网络团队在 Netscaler 中关闭 SSL,然后我可以使用 URL 导航到应用程序。
所以确认某处SSL握手有错误。我假设如果证书已损坏或者我输入了错误的密码,那么当我使用 servername:8080/Myapp 导航到应用程序时,我将不会收到此“证书有效消息”。
任何想法或任何人以前遇到过这个问题?
提前致谢。
最佳答案
wireshark 嗅探通常会告诉 ssl 握手中有什么问题。
不过,您应该注意一件事:Netscaler 无法与在“后端”端配置了“拒绝不安全的 renego”的服务器通信。那是在 netscaler 和应用程序服务器之间。这只是 Netscaler 上的一篇论文。
Netscaler 在前端(客户端和 netscaler 之间)完全支持这一点。
这可能是您遇到问题的原因。如果没有捕获握手。证据就在布丁里。 (wireshark 捕获)
关于docker - 无法通过 URL 访问 Web 应用程序。从 Netscaler 到应用服务器的 SSL 连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48800245/
我们的一个客户使用 Netscaler 作为 Fuse 服务器和我们的 Tomcat 托管软件之间的平衡器中间件。目前我们的软件和 netscaler 之间遇到奇怪的通信行为(我们正在使用 Sprin
我是 pyparsing 的新手,需要帮助将下面的输出解析成字典对象 MONLB01> sh lb vserver montest_4567_VS2 montest_4567_VS2 (167
我想使用 java 自动登录 Citrix(Netscaler Gateway)。 我尝试搜索并在 gmail 中找到自动登录,但这两个任务是不同的。 需要一些自动登录 Citrix 应用程序的指导(
weblogic 和 netscaler 的新手需要架构方面的帮助 我想向互联网公开 weblogic 上的服务,以便移动用户可以访问 web 服务。当前,当用户直接访问网站时,内部流量正常,例如 h
我最近开始使用 Python 来使用 Nitro API。为了向 Netscaler 添加一些可扩展性,我需要能够添加启用和禁用服务组中的服务器节点。下面的代码是我实现这一目标的尝试: def dis
概览 我在 3 台服务器机器 A、B 和 C(读取容器)上构建并部署了一个 dockerized springboot 应用程序,并在端口 8080 上公开了应用程序。 但无法通过 url 访问(Ne
我是一名优秀的程序员,十分优秀!