代码之家  ›  专栏  ›  技术社区  ›  Dani van der Meer

使用设备配置服务时出错和seg错误

  •  0
  • Dani van der Meer  · 技术社区  · 6 年前

    我正在尝试使用c SDK从我的设备使用设备配置服务连接到集线器。我使用个人注册和X.509。我使用SDK的“dice\u device\u enrollment”工具生成的证书在hub上创建了一个单独的注册。我还在设备上安装了证书。当我运行代码时,在执行Prov\u Device\u LL\u DoWork()函数时会出现(OpenSSL)错误。当我第二次调用Prov\u Device\u LL\u DoWork()时,程序段出错。

    输出:

    08:11:25 10-10-2018  [info] Prov_Device_LL_DoWork
    Error: Time:Wed Oct 10 08:11:25 2018 File:/home/tijmen/azure-iot-sdk-c/c-utility/adapters/x509_openssl.c Func:log_ERR_get_error Line:29 Failure creating private key evp_key
    Error: Time:Wed Oct 10 08:11:25 2018 File:/home/tijmen/azure-iot-sdk-c/c-utility/adapters/x509_openssl.c Func:log_ERR_get_error Line:36   [0] error:0906D06C:PEM routines:PEM_read_bio:no start line
    Error: Time:Wed Oct 10 08:11:25 2018 File:/home/tijmen/azure-iot-sdk-c/c-utility/adapters/x509_openssl.c Func:log_ERR_get_error Line:36   [1] error:0906D064:PEM routines:PEM_read_bio:bad base64 decode
    Error: Time:Wed Oct 10 08:11:25 2018 File:/home/tijmen/azure-iot-sdk-c/c-utility/adapters/tlsio_openssl.c Func:log_ERR_get_error Line:428 unable to use x509 authentication
    Error: Time:Wed Oct 10 08:11:25 2018 File:/home/tijmen/azure-iot-sdk-c/c-utility/adapters/tlsio_openssl.c Func:tlsio_openssl_open Line:1251 Failed creating the OpenSSL instance.
    Error: Time:Wed Oct 10 08:11:25 2018 File:/home/tijmen/azure-iot-sdk-c/umqtt/src/mqtt_client.c Func:mqtt_client_connect Line:1000 Error: io_open failed
    Error: Time:Wed Oct 10 08:11:25 2018 File:/home/tijmen/azure-iot-sdk-c/provisioning_client/src/prov_transport_mqtt_common.c Func:create_connection Line:567 Failure connecting to mqtt server
    Error: Time:Wed Oct 10 08:11:25 2018 File:/home/tijmen/azure-iot-sdk-c/provisioning_client/src/prov_transport_mqtt_common.c Func:prov_transport_common_mqtt_dowork Line:874 unable to create amqp connection
    08:11:25 10-10-2018  [info] Prov_Device_LL_DoWork
    Segmentation fault
    

    同样的代码也适用于我的开发人员机器,但使用的OpenSSL版本略有不同: 在开发人员机器上OpenSSL 1.0.1t 2016年5月3日 在设备上OpenSSL 1.0.2d 2015年7月9日

    我错过的OpenSSL版本有什么要求吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Dani van der Meer    6 年前

    事实证明,升级OpenSSL解决了这个问题。 https://github.com/openssl/openssl/tree/OpenSSL_1_0_2-stable 并将其链接到我的应用程序。这就解决了这个错误。似乎SDK,至少X.509功能需要比2015年7月9日1.0.2d更高版本的OpenSSL。