我正在尝试为 Google App Engine 上的 JAX-WS Web 服务客户端提供 2 路 SSL 身份验证。
javax.net.ssl.keystore
我相对确定我可以通过强制转换为 BindingProvider 并设置属性来设置客户端的私钥,如下所示:
WebServicePortType service = new WebService().getWebServicePort();
((BindingProvider) service).getRequestContext().put("javax.net.ssl.keyStore", "client_cert.p12"
我能找到的所有示例都假定client_cert.p12
是本地文件系统上的文件。
由于我们在 Google App Engine 上,因此禁止我们直接访问文件系统。
此上下文是否会接受密钥库位置的 URL?如果没有,有什么方法可以在不需要文件系统访问的 Web 服务上设置密钥库?
谢谢
编辑:
SSLSocketFactory
, SSLContext
, KeyManager
, 和KeyManagerFactory
所有在 GAE 上都是不允许的。