2016-09-20 70 views
10

在OSX應用here,我可以使用AWS MQTT與iOS9,但是當我嘗試OSX10.11一樣,我得到這個錯誤:AWS MQTT在OSX

CFNetwork SSLHandshake failed (-9829)

錯誤-9828被定義爲

errSSLPeerCertUnknown = -9829, /* unknown certificate */

我的OSX的info.plist是

<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> 

的P12(由 「OpenSSL的PKCS12 -info -in awsiot-identity.p12」)我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> 

爲什麼OSX失敗,但iOS成功了?

回答

0

這些答案都沒有幫助。我終於從亞馬遜那裏得到了答案,並表示「我們現在還不支持OSX MQTT」。這不是特別有用,這是令人沮喪的是,關鍵在某些機器上工作一定的時間,但我的選擇現在:

  1. 等待亞馬遜支持OSX MQTT哪天說不定
  2. 使用嵌入式-C SDK for MQTT
1

由於SSL握手問題而失敗。它正在檢測無效證書。

類似的問題被報告和解決here,引用相同的錯誤代碼。由於p12文件中存在多重身份,該問題被追溯到身份不匹配。

在這種情況下,p12文件中有兩個證書,但代碼只讀取第一個。

我建議轉儲.p12文件的內容並確認證書。張貼他們在這裏審查。

+0

我發佈了p12。我沒有看到它的兩個身份。 –

+0

嗨羅德里戈,我可以支付你在這方面幫助我。通過mi sitio web tel punto red聯繫我 –

0

您錯過了在您的OS X上簽名證書的CA,取決於您創建證書的方式,您需要將CA導入您的鑰匙串。請參考here

0

我們最近在MAC應用商店發佈了MQTTBox應用程序來創建MQTT客戶端並加載測試MQTT。您可以連接到任何可用的MQTT代理。這可能對你有所幫助。請檢查此link瞭解更多詳情。

注意:我是此工具的開發人員之一。

相關問題