Я прошел через руководство по IoT в консоли AWS для настройки устройства Linux/Java, которое загружает zip-файл и в конечном итоге использует код здесь: https://github.com/aws/aws-iot-device-sdk-java. Когда я запускаю сценарий start.sh из архива, я вижу исключение UnknownHostException, и сценарий завершается ошибкой.
Cert file:../java-thing.cert.pem Private key: ../java-thing.private.key
Sep 21, 2017 10:23:11 PM com.amazonaws.services.iot.client.mqtt.AwsIotMqttConnectionListener onFailure
WARNING: Connect request failure
MqttException (0) - java.net.UnknownHostException: a2vnfud9kry2r9.iot.us-east-1.amazonaws.com
at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:38)
at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:664)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.UnknownHostException: a2vnfud9kry2r9.iot.us-east-1.amazonaws.com
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:668)
at org.eclipse.paho.client.mqttv3.internal.TCPNetworkModule.start(TCPNetworkModule.java:70)
at org.eclipse.paho.client.mqttv3.internal.SSLNetworkModule.start(SSLNetworkModule.java:86)
at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:650)
... 1 more
Диагностика подключения, как это предлагается в официальных документах, не вызывает проблем; подключается нормально:
openssl s_client -connect a2vnfud9kry2r9.iot.us-east-1.amazonaws.com:8443 -CAfile root-CA.crt -cert java-thing.cert.pem -key java-thing.private.key
Что также странно, так это то, что проверка связи с конечной точкой клиента работает, но другие инструменты, такие как telnet, не могут разрешить имя хоста.
Что я делаю неправильно?