- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
上下文
我需要在 Windows Server 2008 上的 IIS 7.5(http 端口 80,https 443)后面放置一个 Java 应用程序服务器(http 端口 8080,https 8181)。
步骤
我使用了 IIS ARR
模块来启用代理,以便将一些请求路由到 Java 应用程序服务器。为此,我还创建了一些 URL Rewrite
规则。使用 http
,一切正常。
使用的规则指出,当请求的 URL 匹配模式 (MyAppContextRoot.+)
时,要采取的操作是重写:http://localhost:8080/{R: 0}
。
对于另一个使用 https 的应用程序,重写规则是:https://localhost:8181/{R:0}
。
为了路由 https 请求,我在某处读到我需要在 IIS 和 Java 之间共享相同的证书,因为 IIS 加密/解密请求/答案。如果我错了,请纠正我。
由于我还处于开发阶段,所以我决定分享一个自签名证书。我使用 SelfSSL7
创建了它,并且使用 keytool
将其导入到 java keystore
中:
selfSSL7 /Q /T /I "Default web site" /N cn=myDomain.com /X /F MyCertificate.pfx /W myPassword
keytool -importkeystore -srckeystore C:\myPath\MyCertificate.pfx -srcstoretype pkcs12 -srcalias my -deststoretype jks -deststorepass myPassword -destalias MyAlias
问题
两个证书都完成了它们的工作:https://myDomain.com
和 https://myDomain.com:8181
已启动并正在运行,但在尝试路由时,我得到错误:
502 - Web server received an invalid response while acting as a gateway or proxy server.
There is a problem with the page you are looking for, and it cannot be displayed. When the Web server (while acting as a gateway or proxy) contacted the upstream content server, it received an invalid response from the content server.
然而,查看证书,在以下方面存在差异:颁发给、颁发者、有效性、签名算法、 key 大小。特别是SelfSSL7创建的算法是sha1RSA(1024 Bits key),keytool创建的算法是sha256RSA(2048 Bits key)。
最佳答案
这听起来像是您要尝试做的是反向代理设置,而不是重定向到 Java 服务器,在这种情况下,不应直接访问 Java 服务器,而只能通过 IIS 访问。因此,它对客户端来说是“不可见的”(因此您甚至不应该看到具有不同端口的不同 URL)。听起来您的重写规则只是重定向(不是反向代理重写规则)。
如果您不需要使用 SSL/TLS 保护 IIS 和 Java 容器之间的连接(仅从外部客户端到 IIS 的连接),则不需要为 SSL 配置 Java 容器/TLS。 IIS 将成为您的 Java 容器的客户端,使用纯 HTTP。
如果您希望使用 SSL/TLS 保护 IIS 和您的 Java 容器之间的连接,您需要证书对托管 Java 容器的主机有效,如 IIS 所见。这不太可能与 IIS 上使用的证书相同,因为 IIS 使用的证书是面向公众的证书,而 Java 容器的证书仅供内部使用(您可能使用自签名证书或您自己的 CA,具体取决于 IIS 反向代理模块可以配置为接受什么)。
关于来自 pfx 证书的 Java keystore ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10839928/
当我在工作区执行 certsign.sh 脚本时,出现以下错误 jarsigner 错误:java.lang.RuntimeException: keystore 加载:无效的 keystore 格式
如何: 生成 keystore 生成信任库 为了让 SSL 在客户端和服务器之间工作,我只需要 的帮助使用终端命令(Keytool 和 openssl)生成用于相互身份验证的 keystore 和信任
keystore 和信任库之间有什么区别? 最佳答案 keystore 包含私钥以及证书及其相应的公钥。 信任库包含来自您希望与之通信的其他方的证书,或来自您信任的可识别其他方的证书颁发机构的证书。
我已经尝试使用命令 keytool -import -keystore *.jks -alias alias_name -keypass alias_passwd -file *.x509.pem`
我试图找出.keystore文件和.jks文件之间的区别,但我找不到它。我知道 jks 代表“Java keystore”,两者都是存储键/值对的一种方式。 使用其中一种与另一种相比有什么区别或偏好吗
我有一个包含多个客户端证书的 Java keystore 文件。我希望在我的 Java 应用程序中仅选择这些证书之一来连接到服务。有没有简单的方法可以做到这一点?到目前为止,我找到解决方案的唯一方法是
我想知道是否有一种方法可以检测程序是在默认(调试) keystore (从 eclipse 运行时)还是在签名 keystore (发布到 Android 市场时)上运行 我在我的应用程序中使用谷歌地
我是Java世界的新手,虽然使用NetBeans代码创建Web应用程序工作正常,直到执行get方法,但当我试图执行SQL查询时,glassfish无法显示来自MSQL DB的数据并给出错误。我正在使用
在 Azure 管道中有以下任务 AzureResourceManagerTemplateDeployment@3 从 ARM 模板部署 Key Vault 然后,AzurePowerShell@5
我正在使用以下命令使用 OpenSSL 创建 keystore : openssl pkcs12 -export -in mycert.crt -inkey mykey.key \
在 Azure 管道中有以下任务 AzureResourceManagerTemplateDeployment@3 从 ARM 模板部署 Key Vault 然后,AzurePowerShell@5
我使用下面的代码尝试加载 keystore 文件,但收到 java.io.IOException: 无效的 keystore 格式异常。关于如何解决此问题或导致问题的原因有什么想法吗? 加载 keys
我目前正在评估 Artifactory Pro 版本的 jar 签名功能。我正在按照此处找到的手册进行操作:https://www.jfrog.com/confluence/display/RTF/W
当我尝试将证书添加到 Keystore 时,我遇到了一个奇怪的错误。 System.out.println(x509Certificate.getPublicKey()); // prints pub
作为加密和保存数据的一部分,我们使用 AES 算法和 openssl 生成了 key 。 openssl enc -aes-256-cbc -P -nosalt Openssl 已生成 KEY 和 I
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: I lost my .keystore file! 我丢失了在 Market 上发布的 Android 应用
我不小心删除了我的应用程序的 .keystore 文件,但我仍然有用于生成 .keystore 文件的 Keystore 密码。有什么方法可以使用密码恢复该文件吗? 最佳答案 不,这不可能。一旦你失去
我正在访问一个 https URL,证书已添加到我的应用程序 keystore 属性中。 但是,目标 https URL 的证书最近发生了变化。 我们不想重新编译代码并使用更新后的 keystore
所以我有一个应用程序,允许用户使用 HTTPS 配置服务器。服务器使用 Undertow。要向 Undertow 添加 HTTPS 处理程序,我需要调用 Keystore.getInstance("J
这个问题在这里已经有了答案: Truststore and Keystore Definitions (7 个答案) 关闭 6 年前。 我有一个 PKCS#12我将其视为 keystore 文件,因
我是一名优秀的程序员,十分优秀!