LoginSignup
2
1

More than 5 years have passed since last update.

AWS IoTにmqtt-spyを使って接続する際の注意点

Last updated at Posted at 2016-02-11

MacでAWS IoTにつなごうとしたらはまったのでメモ。
(この記事を書いた時の状況です。後ほど改善される可能性は大いにあります。)

構成

  • Mac OSX ElCapitan 10.11.3
  • Mqtt-spy 0.4.0

手順

  1. Mqtt-spyでAWS IoTのURLやら証明書の設定をします。
  2. "Client key in PEM format"のチェックボックスをONにします。(地味にこれが0.3.0との差分)
  3. 以下のエラーが発生します。どうも0.4.0をMacで使うとこのエラーで手詰まりらしい。
pl.baczkowicz.spy.exceptions.ConfigurationException: Invalid configuration parameters
    at pl.baczkowicz.mqttspy.connectivity.MqttConnectionDetailsWithOptions.<init>(MqttConnectionDetailsWithOptions.java:91)
    at pl.baczkowicz.mqttspy.connectivity.RuntimeConnectionProperties.<init>(RuntimeConnectionProperties.java:34)
    at pl.baczkowicz.mqttspy.ui.connections.ConnectionManager.openConnection(ConnectionManager.java:160)
    at pl.baczkowicz.mqttspy.ui.EditConnectionController$6.run(EditConnectionController.java:447)
    at com.sun.javafx.application.PlatformImpl.lambda$null$156(PlatformImpl.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$157(PlatformImpl.java:294)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
Caused by: pl.baczkowicz.spy.exceptions.SpyException: Cannot create TLS/SSL connection
    at pl.baczkowicz.spy.security.SecureSocketFactoryBuilder.getSocketFactory(SecureSocketFactoryBuilder.java:100)
    at pl.baczkowicz.mqttspy.connectivity.MqttConnectionDetailsWithOptions.populateMqttConnectOptions(MqttConnectionDetailsWithOptions.java:175)
    at pl.baczkowicz.mqttspy.connectivity.MqttConnectionDetailsWithOptions.<init>(MqttConnectionDetailsWithOptions.java:87)
    ... 7 more
Caused by: java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException : algid parse error, not a sequence
    at sun.security.rsa.RSAKeyFactory.engineGeneratePrivate(RSAKeyFactory.java:217)
    at java.security.KeyFactory.generatePrivate(KeyFactory.java:379)
    at pl.baczkowicz.spy.security.SecureSocketUtils.loadPrivateKeyFromPemFile(SecureSocketUtils.java:96)
    at pl.baczkowicz.spy.security.SecureSocketUtils.getKeyManagerFactory(SecureSocketUtils.java:185)
    at pl.baczkowicz.spy.security.SecureSocketFactoryBuilder.getSocketFactory(SecureSocketFactoryBuilder.java:93)
    ... 9 more
Caused by: java.security.InvalidKeyException: IOException : algid parse error, not a sequence
    at sun.security.pkcs.PKCS8Key.decode(PKCS8Key.java:351)
    at sun.security.pkcs.PKCS8Key.decode(PKCS8Key.java:356)
    at sun.security.rsa.RSAPrivateCrtKeyImpl.<init>(RSAPrivateCrtKeyImpl.java:91)
    at sun.security.rsa.RSAPrivateCrtKeyImpl.newKey(RSAPrivateCrtKeyImpl.java:75)
    at sun.security.rsa.RSAKeyFactory.generatePrivate(RSAKeyFactory.java:316)
    at sun.security.rsa.RSAKeyFactory.engineGeneratePrivate(RSAKeyFactory.java:213)
    ... 13 more

解決策

0.5.0を使ってください。(betaでも大丈夫)
同じ設定で接続すればつながります。

こんなん嵌るわ。0.4.0でBugFixされることを願います。

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1