Spark服务器在安卓系统上运行安全吗



我正在尝试运行一个在Android上运行的Spark(sparkjava.com(服务器应用程序。此服务器需要支持HTTPS。我使用的是Spark 2.9.2。

以下是在Spark中支持HTTPS的安全调用。

secure("/sdcard/orsecurity/keystore.bks","mypassword",null,null(;

当应用程序启动时,它会崩溃,并显示java.security.KeyStoreException:找不到JKS。我在各种帖子中看到,Android不支持JKS密钥库类型。

在调试过程中,我注意到Jetty服务器有一个setKeyStoreType调用,允许用户将密钥库类型从Jetty默认的JKS更改为其他类型。

我的计划是做以下事情:

  1. 下载Spark 2.9.2源代码
  2. 在Spark文件/src/main/java/Spark/embeddedserver/jetty/SocketConnectorFactory.java的createSecureSocketConnector方法中,调用sslContextFactory.setKeyStoreType(AndroidSupportKeystoreType(将密钥库类型切换为Android支持的密钥库类型
  3. 重新生成类并创建一个新的修改过的Spark jar
  4. 用这个新修改的Spark jar重新构建我的应用程序

我正在考虑使用BKS或PKCS12作为密钥存储类型。

是否有其他人在Android上成功运行了支持HTTPS请求的Spark服务器?如果是,任何建议都将不胜感激。

由于Java 8附带的JEP-229,Java运行时的默认密钥库类型是PKCS12。

如果Spark的secure(...)方法也接受密钥库类型的参数,我想这是有意义的。如果他们对此感兴趣,也许你应该查看他们的问题跟踪器。

最新更新