Request certificates

To ensure that only trusted developers and manufacturers can create virtual devices and plugins that communicate with SmartThings Cloud, Developer Workspace provides ways to apply for certificates of your devices and plugins.

Request a certificate for devices

SmartThings Cloud allows trusted developers and manufacturers with a device certificate to connect their devices with SmartThings Cloud. To test your physical or virtual devices, please request a certificate for devices only once.

Depending on your development environment, use SmartThings CLI to request a device certificate.

Using SmartThings CLI

You can easily request a device certificate using SmartThings CLI with the following command.

st request device-crt --device-name  [--email ] [--mnid ] [--common-name ] [--organization ] [--organizational-unit ] [--locality ] [--state ] [--country ] [--out-dir ]
Fields Mandatory / Optional Description
Email Optional Your email address
Manufacturer ID Mandatory Your manufacturer ID (MNID)
Name Optional The name of your enterprise
Country, State, Locality Optional Your country (and language), state, and locale of your enterprise (headquarters)
Organization, Organizational Unit Optional Specifics about your company
Output Cert File Directory Optional The directory certificate file will be located here

Request certificates for plugins

You need two types of certificates to install your plugin on the SmartThings app: an Author Certificate and a Distributor Certificate. These certificates are used for signing and verifying your plugin.

The author certificate identifies the author and enables future updates to the plugin. The same key must be used in all versions of your plugin, so you should keep it in a safe and secure place.

The distributor certificate identifies the distributor. The issued distributor certificate enables installation of the plugin to the registered device for testing. After the plugin is uploaded to the Stores, it is replaced by the official distributor certificate.

Depending on your development environment, use one of the following ways to request certificates for plugins.

  • Using SmartThings CLI
  • Using the IDE

If you request certificates for plugins successfully, these following four files will be created:

  • author.crt: author certificate
  • author.pri: author key
  • distributor.crt: distributor certificate
  • distributor.pri: distributor key

in this folder: C:\User\{user.name}\.smartThings\security_profiles\{userId}

where:

  • {user.name} is your computer login.
  • {userId} is a code that can be found in this file: C:\Users\{user.name}\.smartThings\ide\config.json.

IMPORTANT

Keep your author key(author.pri) and certificate (author.crt) in a safe and secure place. Ensure that you have secure backups. If you lose your author key or certificate, you will not be able to publish any updates on to your plugins. The same key and certificate must be used to sign all versions of your plugins.

Using SmartThings CLI

You can request a certificate for a plugin using SmartThings CLI without downloading SmartThings SDK. To request certificates, use the following command.

st request ppk-crt --passwd  [--distributor-type ] [--common-name ] [--organization ] [--organizational-unit ] [--state ] [--country ]
Fields Mandatory / Optional Description
Password Mandatory A password used to protect access to your private key
Distributor Type Mandatory Permission level to use plugin API (Use “Public” only)
Name Optional The name of your enterprise
Country, State, Locality Optional Your country (and language), state, and locale of your enterprise (headquarters)
Organization, Organizational Unit Optional Specifics about your company

Using the IDE

  1. From the Atom IDE, select Packages > SmartThings > Login and log in to your Samsung Account.
  2. Select Packages > SmartThings > Plugin > Create Certification Key.
  3. Provide information for the mandatory and optional fields: Signing key from IDE
  4. Click Create.

In the top right corner of the IDE, a message indicates whether or not the request was successful.