In this example we will create a device with a hardware identifier
1234. The device will also be tagged with
qa so we can target it in our deployment group. We will select
y when asked if we would like to generate device certificates. Device certificates are required for a device to establish a connection with the NervesHub server.
$ mix nerves_hub.device createNervesHub organization: nerveshubidentifier: 1234description: test-1234tags: qaLocal user password:Device 1234 createdWould you like to generate certificates? [Yn] yCreating certificate for 1234Finished
It is important to note that device certificate private keys are generated and stay on your host computer. A certificate signing request is sent to the server, and a signed public key is passed back. Generated certificates will be placed in a folder titled
nerves-hub in the current working directory. You can specify a different location by passing
--path /path/to/certs to NervesHubCLI mix commands.
NervesHub certificates and hardware identifiers are persisted to the firmware when the firmware is burned to the SD card. To make this process easier, you can call
nerves_hub.device burn IDENTIFIER. In this example, we are going to burn the firmware and certificates for device
1234 that we created.
mix nerves_hub.device burn 1234
Your device will now connect to NervesHub when it boots and establishes an network connection.