gpt4 book ai didi

android - 我如何让 ionic 库信任自签名证书

转载 作者:太空宇宙 更新时间:2023-11-03 12:18:24 25 4
gpt4 key购买 nike

我正在尝试连接到必须使用自签名证书的 REST 服务(它是一个统一的 PBX 网络服务接口(interface))。系统将在软件更新时重新生成它的证书,除非您将证书加载到系统中,否则总会有一个自签名证书。当尝试与 ion 连接时,连接由于自签名证书而关闭(据谷歌带我...)。我需要在我的实现中添加什么才能使 io 接受此证书?我按如下方式使用 ionic 。

Ion.with(context)
.load(...)
.asString()
.setCallback(new FutureCallback<String>() {
@Override
public void onCompleted(Exception e, String result) {
}
});

最佳答案

您可以指定自定义 SSL 上下文和信任管理器以使用自签名证书。

这是一个单元测试的例子:

public void testKeys() throws Exception {
KeyManagerFactory kmf = KeyManagerFactory.getInstance("X509");
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());

ks.load(getContext().getResources().openRawResource(R.raw.keystore), "storepass".toCharArray());
kmf.init(ks, "storepass".toCharArray());


TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
KeyStore ts = KeyStore.getInstance(KeyStore.getDefaultType());
ts.load(getContext().getResources().openRawResource(R.raw.keystore), "storepass".toCharArray());
tmf.init(ts);

SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);

AsyncHttpServer httpServer = new AsyncHttpServer();
httpServer.listenSecure(8888, sslContext);
httpServer.get("/", new HttpServerRequestCallback() {
@Override
public void onRequest(AsyncHttpServerRequest request, AsyncHttpServerResponse response) {
response.send("hello");
}
});

Thread.sleep(1000);

AsyncHttpClient.getDefaultInstance().getSSLSocketMiddleware().setSSLContext(sslContext);
AsyncHttpClient.getDefaultInstance().getSSLSocketMiddleware().setTrustManagers(tmf.getTrustManagers());
AsyncHttpClient.getDefaultInstance().executeString(new AsyncHttpGet("https://localhost:8888/"), null).get();
}

您需要按如下方式访问 ion 的底层 http 客户端实例:

Ion.getDefault(getContext()).getHttpClient().getSSLSocketMiddleware().setTrustManagers(...);
Ion.getDefault(getContext()).getHttpClient().getSSLSocketMiddleware().setSSLContext(...);

key 是一个 bks key store,bouncy caSTLe。

关于android - 我如何让 ionic 库信任自签名证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25380047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com