Tous les produits
Search
Centre de documentation

IoT Platform:Connexion et communication via HTTPS

Dernière mise à jour :Aug 09, 2026

IoT Platform prend en charge la connexion des appareils via HTTPS. Les appareils s'authentifient pour obtenir un jeton, puis l'utilisent pour envoyer des données.

Utilisation et limites

  • La communication HTTPS n'est disponible que dans les régions Chine (Shanghai)

    , Chine (Pékin) et Chine (Shenzhen)

    .

  • Seule la région Chine (Shanghai) prend en charge les connexions HTTPS éphémères. Les statuts de connexion et de déconnexion des appareils sont visibles dans la console IoT Platform. Abonnez-vous aux modifications d'état des appareils via les abonnements côté serveur AMQP.

  • Seuls les appareils connectés directement peuvent communiquer via HTTPS. Les appareils passerelle et les sous-appareils ne sont pas pris en charge.

  • Ce service est conçu pour l'envoi simple de données. La charge utile montante est limitée à 128 Ko.

  • Les rubriques suivent le format des rubriques MQTT et peuvent être réutilisées à partir des connexions MQTT. Pour envoyer des données, envoyez une requête POST vers ${endpoint}/topic/${topic}${endpoint}/topic/${topic}. Les paramètres de chaîne de requête (?query_String=xxx?query_String=xxx) ne sont pas pris en charge.

  • Les connexions HTTPS ne prennent en charge que la méthode de requête POST.

  • Le jeton d'authentification est valide pendant sept jours. Votre application doit gérer l'expiration du jeton et la réauthentification.

Flux de connexion

Le flux de connexion comporte deux étapes : authentifiez l'appareil pour obtenir un jeton, puis utilisez ce jeton pour envoyer des données.

  1. Authentifiez l'appareil pour obtenir un jeton.

    Requête d'authentification de l'appareil :

    POST /auth HTTP/1.1
    Host: ${YourEndpoint}
    Content-Type: application/json
    Content-Length: 214
    body: {"version":"default","clientId":"mylight1000002","signmethod":"hmacsha1","sign":"4870141D4067227128CBB4377906C3731CAC221C","productKey":"ZG1EvTE****","deviceName":"NlwaSPXsCpTQuh8FxBGH","timestamp":"1501668289957"}
    Tableau 1. Description des paramètres
    Paramètre Description
    Method Méthode de requête. Seule la méthode POST est prise en charge.
    URL URL. HTTPS uniquement. Valeur : /auth.
    Host Le point de terminaison HTTP. Obtenez le point de terminaison depuis Afficher et configurer les points de terminaison de l'instance.
    Content-Type Format d'encodage des données. Seul le format application/json est pris en charge. Les autres formats entraînent une erreur de paramètre.
    Content-Length Longueur du corps (body) du message HTTP.
    Important
    • HTTP/1.1+ inclut Content-Length par défaut ; HTTP/1.0 ne l'inclut pas. Incluez le champ Content-Length lors de l'authentification via HTTP.
    • La valeur de Content-Length doit correspondre exactement à la longueur du body. Une inadéquation empêche l'analyse du body et entraîne l'échec de l'authentification.
    body Informations d'authentification de l'appareil au format JSON. Les paramètres sont décrits dans le tableau des paramètres body.
    Tableau 2. Paramètres body
    Nom du champ Obligatoire Description
    productKey Oui ProductKey de l'appareil. Vous le trouverez sur la page Device Details dans l'instance correspondante.
    deviceName Oui Nom de l'appareil. Vous le trouverez sur la page Device Details dans la console IoT Platform.
    clientId Oui ID client. Maximum 64 caractères. Utilisez une adresse MAC ou un numéro de série (SN) comme clientId.
    timestamp Non Horodatage en millisecondes depuis le 1er janvier 1970 (UTC). La requête expire 15 minutes après cet horodatage.
    sign Oui Signature.

    Format de la signature : hmacmd5(DeviceSecret,content).

    content correspond à tous les paramètres (à l'exception de version, sign et signmethod) triés par ordre alphabétique et concaténés sans délimiteur.

    Exemple de signature :

    Si clientId = 127.0.0.1, deviceName = http_test, productKey = a1FHTWxQ**, timestamp = 1567003778853, signmethod = hmacmd5, deviceSecret = 89VTJylyMRFuy2T3sywQGbm5Hmk1**, la signature est :

    hmacmd5("89VTJylyMRFuy2T3sywQGbm5Hmk1**","clientId127.0.0.1deviceNamehttp_testproductKeya1FHTWxQ**timestamp1567003778853").toHexString();

    La fonction toHexString() convertit les données binaires en une chaîne hexadécimale insensible à la casse. Par exemple, le tableau décimal [60 68 -67 -7 -17 99 30 69 117 -54 -58 -58 103 -23 113 71] se convertit en : 3C44BDF9EF631E4575CAC6C667E97147.

    signmethod Non Algorithme de signature. Valeurs valides : hmacmd5, hmacsha1.

    Par défaut : hmacmd5.

    version Non Numéro de version. Par défaut : default.

    Réponse d'authentification réussie :

    body:
    {
      "code": 0,
      "message": "success",
      "info": {
        "token":  "6944e5bfb92e4d4ea3918d1eda39****"
      }
    }
    Remarque
    • Mettez en cache le jeton renvoyé localement.

    • Incluez le jeton dans chaque requête d'envoi de données. Si le jeton expire, réauthentifiez-vous pour obtenir un nouveau jeton.

    Tableau 3. Codes d'erreur
    code message Remarques
    10000 common error Erreur inconnue.
    10001 param error Les paramètres de la requête ne sont pas valides.
    20000 auth check error Échec de l'authentification de l'appareil.
    20004 update session error Échec de la mise à jour.
    40000 request too many Le nombre de requêtes dépasse la limite. La limitation de débit est déclenchée.
  2. Envoyez des données.

    Les appareils envoient des données aux rubriques disposant de l'autorisation Publish. Les rubriques personnalisées sont prises en charge.

    Par exemple, si la rubrique est /${YourProductKey}/${YourDeviceName}/pub/${YourProductKey}/${YourDeviceName}/pub, le nom de l'appareil est device123 et le ProductKey du produit est a1GFjLP**, vous pouvez appeler l'URL https://iot-as-http.cn-shanghai.aliyuncs.com/topic/a1GFjLP**/device123/pubhttps://iot-as-http.cn-shanghai.aliyuncs.com/topic/a1GFjLP****/device123/pub pour envoyer des données.

    Requête d'envoi de données :

    POST /topic/${topic} HTTP/1.1
    Host: ${YourEndpoint}
    password:${token}
    Content-Type: application/octet-stream
    Content-Length: 53
    body: ${your_data}
    Tableau 4. Paramètres d'envoi de données
    Paramètre Description
    Method Méthode de requête. Seule la méthode POST est prise en charge.
    URL /topic/${topic}. Remplacez ${topic} par la rubrique de destination. HTTPS uniquement.
    Host Adresse du point de terminaison.
    password Paramètre d'en-tête. Définissez-le sur le jeton renvoyé par l'opération auth.
    Content-Type Format d'encodage des données. Seul le format application/octet-stream est pris en charge. Les autres formats entraînent une erreur de paramètre.
    Content-Length Longueur de l'entité du message HTTP.
    body Données à envoyer à ${topic}.

    Réponse réussie :

    body:
    {
      "code": 0,
      "message": "success",
      "info": {
        "messageId": 892687****47040
      }
    }
    Tableau 5. Codes d'erreur
    code message Remarques
    10000 common error Erreur inconnue.
    10001 param error Les paramètres de la requête ne sont pas valides.
    20001 token is expired Le jeton a expiré. Appelez à nouveau l'opération auth pour obtenir un nouveau jeton.
    20002 token is null Le jeton est introuvable dans l'en-tête de la requête.
    20003 check token error Échec de la récupération des informations d'identité à partir du jeton. Appelez à nouveau l'opération auth pour obtenir un nouveau jeton.
    30001 publish message error Échec de l'envoi des données.
    40000 request too many Le nombre de requêtes dépasse la limite. La limitation de débit est déclenchée.

Exemples

Pour connecter un client HTTP à IoT Platform, suivez les étapes décrites dans Connecter un client HTTP.