【发布时间】:2020-12-22 00:56:21
【问题描述】:
我正在尝试运行在 Android 上运行的 Spark (sparkjava.com) 服务器应用程序。此服务器需要支持 HTTPS。我正在使用 Spark 2.9.2。
这是在 Spark 中支持 HTTPS 的安全调用。
secure("/sdcard/oursecurity/keystore.bks", "mypassword", null, null);
当应用程序启动时,它会崩溃并出现 java.security.KeyStoreException: JKS not found。 我在各种帖子中看到 Android 不支持 JKS 密钥库类型。
在调试时,我注意到 Jetty 服务器有一个 setKeyStoreType 调用,允许用户将密钥库类型从 Jetty 的默认 JKS 更改为其他类型。
我的计划是做以下事情:
- 下载 Spark 2.9.2 源代码。
- 在Spark文件/src/main/java/spark/embeddedserver/jetty/SocketConnectorFactory.java的createSecureSocketConnector方法中,调用sslContextFactory.setKeyStoreType(AndroidSupportKeyStoreType)将keystore类型切换为Android支持的keystore类型。李>
- 重建类并创建一个新的修改过的 Spark jar。
- 用这个新修改的 Spark jar 重建我的应用程序。
我正在考虑使用 BKS 或 PKCS12 作为密钥库类型。
还有其他人在支持 HTTPS 请求的 Android 上成功运行 Spark 服务器吗?如果是这样,任何建议将不胜感激。
【问题讨论】:
-
你看到this question了吗?
-
@mthmulders 不,我没有看到这个问题。感谢您指出。不幸的是,我的问题不同。我能够在 Android 中成功运行 Spark。但是,当支持支持 HTTPS 请求所需的“安全”调用时,我无法在 Android 中运行 Spark。希望我可以帮助其他人解决他们的问题。
标签: java android https keystore spark-java