gpt4 book ai didi

安卓,MQTT : broker certificate expiration

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

我的应用程序通过 ssl 连接使用证书文件连接到 mqtt 代理。

我在我的代理中设置了证书文件 (.crt) 和 key 文件 (.key)。

我使用 Paho Mqtt Client api,这个 api 需要一个 SSLSocketFactory 来建立连接。

我使用一个 Google 示例来创建一个 SSLSocketFactory 实例,该实例具有一个在 keystore 中信任我们的 CA 的 TrustManager。

// Load CAs from an InputStream
// (could be from a resource or ByteArrayInputStream or ...)
CertificateFactory cf = CertificateFactory.getInstance("X.509");
InputStream caInput = new BufferedInputStream(new
FileInputStream("load-der.crt"));
Certificate ca;

try {
ca = cf.generateCertificate(caInput);
System.out.println("ca=" + ((X509Certificate) ca).getSubjectDN());
} finally {
caInput.close();
}

// Create a KeyStore containing our trusted CAs
String keyStoreType = KeyStore.getDefaultType();
KeyStore keyStore = KeyStore.getInstance(keyStoreType);
keyStore.load(null, null);
keyStore.setCertificateEntry("ca", ca);

// Create a TrustManager that trusts the CAs in our KeyStore
String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
tmf.init(keyStore);

// Create an SSLContext that uses our TrustManager
SSLContext context = SSLContext.getInstance("TLS");
context.init(null, tmf.getTrustManagers(), null);

现在一切正常。但是,证书将于 2017 年 5 月 30 日到期。

我必须如何在客户端 (Android) 处理证书?

我已经在测试环境中使用新证书进行了测试。该应用程序无法连接到代理。异常(exception)是:

java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

如何处理 Android 上的证书续订?

最佳答案

我已经使用相同的 .key 文件申请了一个新证书,所有客户端都没有任何问题连接到使用新 .crt 的代理。

但是,使用相同的 key 更新证书是否安全?

关于安卓,MQTT : broker certificate expiration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43786985/

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