2016-09-20 16 views
10

Trong ứng dụng OSX here, tôi có thể sử dụng AWS MQTT với iOS9, nhưng khi tôi cố gắng cùng với OSX10.11, tôi nhận được lỗi này:AWS MQTT trên OSX

CFNetwork SSLHandshake failed (-9829)

Lỗi -9828 được định nghĩa là

errSSLPeerCertUnknown = -9829, /* unknown certificate */

My OSX info.plist là

<key>NSAppTransportSecurity</key> 
    <dict> 
      <key>NSAllowsArbitraryLoads</key> 
      <true/> 
      <key>NSExceptionDomains</key> 
      <dict> 
        <key>amazonaws.com</key> 
        <dict> 
          <key>NSExceptionRequiresForwardSecrecy</key> 
          <false/> 
          <key>NSExceptionAllowsInsecureHTTPLoads</key> 
          <true/> 
          <key>NSThirdPartyExceptionMinimumTLSVersion</key> 
          <string>TLSv1.0</string> 
          <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> 
          <false/> 
          <key>NSIncludesSubdomains</key> 
          <true/> 
        </dict> 
        <key>amazonaws.com.cn</key> 
        <dict> 
          <key>NSExceptionRequiresForwardSecrecy</key> 
          <false/> 
          <key>NSExceptionAllowsInsecureHTTPLoads</key> 
          <true/> 
          <key>NSThirdPartyExceptionMinimumTLSVersion</key> 
          <string>TLSv1.0</string> 
          <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> 
          <false/> 
          <key>NSIncludesSubdomains</key> 
          <true/> 
        </dict> 
      </dict> 
    </dict> 

Các p12 (từ "openssl pkcs12 -info -in awsiot-identity.p12") i s:

MAC Iteration 2048 
MAC verified OK 
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048 
Certificate bag 
Bag Attributes 
    localKeyID: 5F 80 DC 6E AB F1 98 6A AA FC 0B 7B 04 F9 0E 66 99 E9 86 4F 
subject=/CN=AWS IoT Certificate 
issuer=/OU=Amazon Web Services O=Amazon.com Inc. L=Seattle ST=Washington C=US 
-----BEGIN CERTIFICATE----- 
MIIDWTCCAkGgAwIBAgIUJQgfGjmoboOQ7eJo+NTRs5wr8KMwDQYJKoZIhvcNAQEL 
BQAwTTFLMEkGA1UECwxCQW1hem9uIFdlYiBTZXJ2aWNlcyBPPUFtYXpvbi5jb20g 
SW5jLiBMPVNlYXR0bGUgU1Q9V2FzaGluZ3RvbiBDPVVTMB4XDTE2MDcyNTA2NDU0 
NloXDTQ5MTIzMTIzNTk1OVowHjEcMBoGA1UEAwwTQVdTIElvVCBDZXJ0aWZpY2F0 
ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK57RCK3ppDk22TPA+97 
2coZeo36lJpZ9M/0l6xHyeQiiVZMKGrkP3S+ej4Dgd+q4gviB2g5dc9T6jMwRSA8 
qkdadxspSmEtCCwdFY3poVOpsD7Z0s3lVwBSgTiztfQo15yTyIjhkS0gS9tBg1sI 
xIJoYuxXEHkoJKHum8yaluL71jYLxdmp5YHGVHZ55ussZUrWuE4ut4EbHJ8+Ef+z 
caJtJB6YMEeKpKMvZ0vrb+jHytD6s7K20SnfTvEHsXNwWIfwXsxmqkG9KHT7q9Dd 
XlaeKiP0tWE/8ObOPk1W7xT9HTAvkrveJIEFYhMcfi0yTtxm9CyEG0p36yor2HAK 
T/UCAwEAAaNgMF4wHwYDVR0jBBgwFoAU8Kei7lBQZkzRV3if5sWxgF9WtM8wHQYD 
VR0OBBYEFM7oRgS5iXeFPcI4pzY/0BQCCE3mMAwGA1UdEwEB/wQCMAAwDgYDVR0P 
AQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4IBAQBDzKiP+Gldz4RUe0QyMcYDWS0V 
/3PeJTRjoD7IxUOO9czCZoCX46dxJkP1ijzuuqneaEPK7OUQxoHepqPdlbsycXv3 
i/Ty649c/d2dizYqO2iM+6M+xdDLYPBmEAD4aQ9Qj8TpnC5OCSdqGq9XCFLTnz4j 
icx2lYS3COdfZbKs9KQG7dkPK7CWSjHHy21Ftz0zBx7wj5v+2lNbcHCFmYn9+lYg 
Jw1zUR/rGqTcQZHGUvgv3Mfp8xWtHDFhYAKnwGbhIxCanOM6An+yzEwLUEvkQ81Q 
Lzv/yReCVHO4M0+JTW4Fu6BWEaTThPzdN3kQbIzJsViIL9Q6dfAXlvepkHr4 
-----END CERTIFICATE----- 
PKCS7 Data 
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048 
Bag Attributes 
    localKeyID: 5F 80 DC 6E AB F1 98 6A AA FC 0B 7B 04 F9 0E 66 99 E9 86 4F 
Key Attributes: <No Attributes> 

Tại sao OSX không thành công nhưng iOS thành công?

Trả lời

0

Không có câu trả lời nào trong số này có ích. Cuối cùng tôi đã nhận được câu trả lời từ Amazon, nói rằng "chúng tôi chưa hỗ trợ OSX MQTT." Đó không phải là đặc biệt hữu ích, và nó bực bội rằng chìa khóa làm việc trên một số máy một số thời điểm đó, nhưng lựa chọn của tôi bây giờ là:

  1. chờ đợi cho Amazon để hỗ trợ OSX MQTT một ngày nào đó có thể
  2. sử dụng nhúng-C SDK cho MQTT
1

Không thành công do sự cố bắt tay SSL. Nó đang phát hiện chứng chỉ không hợp lệ.

Sự cố tương tự đã được báo cáo và giải quyết here, tham chiếu cùng mã lỗi. Vấn đề đó được truy nguồn từ danh tính không khớp, do nhiều danh tính trong tệp p12.

Trong trường hợp đó, có hai chứng chỉ trong tệp p12, nhưng mã chỉ đọc đầu tiên.

Tôi đề xuất bán phá giá nội dung của tệp .p12 và xác nhận (các) chứng chỉ. Đăng chúng ở đây để xem xét.

+0

Tôi đã đăng p12. Tôi không thấy hai danh tính trong đó. –

+0

Xin chào Rodrigo, tôi có thể trả tiền để giúp tôi về điều này. Liên hệ với tôi thông qua trang web điện tử punto mi telio –

0

bạn thiếu ký CA trên OS X cho chứng chỉ, tùy thuộc vào cách bạn tạo chứng chỉ, bạn cần phải nhập CA vào keychain của mình. tham khảo here

0

Gần đây, chúng tôi đã phát hành ứng dụng MQTTBox trên cửa hàng ứng dụng MAC để tạo các máy khách MQTT và kiểm tra tải MQTT. Bạn có thể kết nối với bất kỳ nhà môi giới MQTT nào có sẵn. Điều đó có thể hữu ích cho bạn. Vui lòng kiểm tra điều này link để biết thêm chi tiết.

LƯU Ý: Tôi là một trong những nhà phát triển của công cụ này.