java - 使用 X.509 证书连接到 AWS IoT 的 Android 应用程序
问题描述
我正在编写一个 Android 应用程序来将传感器连接到 AWS IoT 服务。
我已获得 X.509 证书、一对公私钥clientEndpoint
等。
我正在尝试遵循 AWS 的示例代码(请参阅此处)。
说明很清楚,但我不想生成证书和密钥(我已经有了它们)。
下面是代码片段:
// Create a new private key and certificate. This call
// creates both on the server and returns them to the
// device.
CreateKeysAndCertificateRequest createKeysAndCertificateRequest = new CreateKeysAndCertificateRequest();
createKeysAndCertificateRequest.setSetAsActive(true);
final CreateKeysAndCertificateResult createKeysAndCertificateResult;
createKeysAndCertificateResult = mIotAndroidClient.createKeysAndCertificate(createKeysAndCertificateRequest);
Log.i(LOG_TAG,"Cert ID: " +createKeysAndCertificateResult.getCertificateId() +" created.");
// store in keystore for use in MQTT client
// saved as alias "default" so a new certificate isn't
// generated each run of this application
AWSIotKeystoreHelper.saveCertificateAndPrivateKey(certificateId,createKeysAndCertificateResult.getCertificatePem(),createKeysAndCertificateResult.getKeyPair().getPrivateKey(),
keystorePath, keystoreName, keystorePassword);
// load keystore from file into memory to pass on
// connection
clientKeyStore = AWSIotKeystoreHelper.getIotKeystore(certificateId,keystorePath, keystoreName, keystorePassword);
如何使用现有的证书文件而不是生成新的证书和密钥?
谢谢
解决方案
用于
AWSIotKeystoreHelper.isKeystorePresent(mKeystorePath, mKeystoreName)
检查您的设备上是否已存在密钥库使用检查别名
AWSIotKeystoreHelper.keystoreContainsAlias(mCertificateId, mKeystorePath, mKeystorePassword)
使用获取密钥库
keystore = AWSIotKeystoreHelper.getIotKeystore(mCertificateId, mKeystoreName, mKeystorePassword)
使用 mqttManager 上的 keystore 进行连接
推荐阅读
- c# - 写在抽象类中的公共代码怎么可能有点依赖于继承的类属性?
- json - Apache Solr 映射自定义 JSON 无法索引嵌套文档
- netty - 有没有办法为 Spring Cloud Gateway 中的所有请求配置路由客户端?
- oracle - 如何在 Oracle NUMBER(23,20) 中考虑数据类型
- tile - 在 Godot tilemap 编辑器中选择非连续区域以创建图集
- python - Python 并行,信号量泄漏警告和无回溯的中止
- java - 将 Firestore 查询的结果保存到 ArrayList 并将每个结果添加到 CSV 文件
- node.js - 如何检测文件何时下载?
- c# - 尽管没有任何错误存在并且完美地自行构建和运行,但所有 C# 脚本都会产生错误
- api - 如何在 Flutter 中存储 API 密钥(2020 年 7 月)