Megosztás a következőn keresztül:


Eszközök csatlakoztatása X.509-tanúsítványokkal az IoT Central-alkalmazáshoz

Az IoT Central támogatja a közös hozzáférésű jogosultságkódokat (SAS) és az X.509-tanúsítványokat az eszköz és az alkalmazás közötti kommunikáció biztonságossá tételéhez. Az ügyfélalkalmazás létrehozása és csatlakoztatása az Azure IoT Central-alkalmazás oktatóanyagához SAS-t használ. Ebből a cikkből megtudhatja, hogyan módosíthatja a kódmintát X.509-tanúsítványok használatára. Az X.509-tanúsítványok éles környezetben ajánlottak. További információ: Eszközhitelesítési fogalmak.

Ez az útmutató két módszert mutat be az X.509-tanúsítványok használatára: az éles környezetben általában használt csoportos regisztrációkat és a teszteléshez hasznos egyéni regisztrációkat . A cikk azt is ismerteti, hogyan lehet eszköztanúsítványokat egyesíteni a kapcsolatok fenntartása érdekében a tanúsítványok lejáratakor.

Ez az útmutató az ügyfélalkalmazás létrehozása és csatlakoztatása az Azure IoT Central-alkalmazás oktatóanyagában látható mintákra épül, amelyek C#, Java, JavaScript és Python használatával használhatók. A C programozási nyelvet használó példáért tekintse meg a több X.509-eszköz üzembe helyezését regisztrációs csoportokkal.

Előfeltételek

Az útmutató lépéseinek elvégzéséhez először be kell fejeznie az Ügyfélalkalmazás létrehozása és csatlakoztatása az Azure IoT Central-alkalmazás oktatóanyagához. Az oktatóanyagban használt kódot az útmutató lépéseinek követésével módosíthatja.

Ebben az útmutatóban néhány teszt X.509-tanúsítványt hoz létre. A tanúsítványok létrehozásához a következőkre van szükség:

  • Olyan fejlesztőgép, amely Node.js 6-os vagy újabb verzióját telepítette. A parancssorban futtatva node --version ellenőrizheti a verziót. Az oktatóanyag utasításai feltételezik, hogy a Csomópont parancsot a Windows parancssorában futtatja. A Node.js azonban számos más operációs rendszeren is használhatja.
  • A Microsoft Azure IoT SDK helyi példánya Node.js GitHub-adattárhoz, amely tartalmazza a teszt X.509-tanúsítványok létrehozásához szükséges szkripteket. Ezen a hivatkozáson letöltheti az adattár egy példányát: ZIP letöltése. Ezután bontsa ki a fájlt egy megfelelő helyre a helyi gépen.

Csoportregisztráció használata

Használjon X.509-tanúsítványokat csoportos regisztrációval éles környezetben. Csoportregisztráció esetén egy gyökér- vagy köztes X.509-tanúsítványt ad hozzá az IoT Central-alkalmazáshoz. A főtanúsítványból vagy köztes tanúsítványból származó levéltanúsítványokkal rendelkező eszközök csatlakozhatnak az alkalmazáshoz.

Gyökér- és eszköztanúsítványok létrehozása

Ebben a szakaszban egy X.509-tanúsítvány használatával csatlakoztathat egy eszközt az IoT Central regisztrációs csoport tanúsítványából származó tanúsítvánnyal.

Figyelmeztetés

Az X.509-tanúsítványok létrehozásának ez a módja csak tesztelésre használható. Éles környezetben a tanúsítványgenerálás hivatalos, biztonságos mechanizmusát kell használnia.

  1. A letöltött Node.js a Microsoft Azure IoT SDK-ban keresse meg a tanúsítványgenerátor szkriptjét. Telepítse a szükséges csomagokat:

    cd azure-iot-sdk-node/provisioning/tools
    npm install
    
  2. Hozzon létre egy főtanúsítványt, majd hozzon létre egy eszköztanúsítványt a szkript futtatásával:

    node create_test_cert.js root mytestrootcert
    node create_test_cert.js device sample-device-01 mytestrootcert
    

    Tipp.

    Az eszközazonosító tartalmazhat betűket, számokat és karaktereket - .

Ezek a parancsok a következő gyökér- és eszköztanúsítványokat állítják elő:

fájlnév Tartalmát
mytestrootcert_cert.pem A fő X509-tanúsítvány nyilvános része
mytestrootcert_key.pem A fő X509-tanúsítvány titkos kulcsa
mytestrootcert_fullchain.pem A fő X509-tanúsítvány teljes kulcslánca.
mytestrootcert.pfx A fő X509-tanúsítvány PFX-fájlja.
sampleDevice01_cert.pem Az eszköz X509-tanúsítványának nyilvános része
sampleDevice01_key.pem Az X509-tanúsítvány titkos kulcsa
sampleDevice01_fullchain.pem Az eszköz X509-tanúsítványának teljes kulcslánca.
sampleDevice01.pfx Az eszköz X509-tanúsítványÁNAK PFX-fájlja.

Jegyezze fel a fájlok helyét. Később szüksége lesz rá.

Csoportregisztráció létrehozása

  1. Nyissa meg az IoT Central-alkalmazást, és lépjen az Engedélyek elemre a bal oldali panelen, és válassza az Eszközkapcsolati csoportok lehetőséget.

  2. Válassza az + Új lehetőséget egy új, MyX509Group nevű regisztrációs csoport létrehozásához, amely tanúsítványtípussal (X.509) rendelkezik. Regisztrációs csoportokat IoT-eszközökhöz vagy IoT Edge-eszközökhöz is létrehozhat.

  3. A létrehozott regisztrációs csoportban válassza az Elsődleges kezelés lehetőséget.

  4. Az Elsődleges tanúsítvány panelen válassza a Tanúsítvány hozzáadása lehetőséget.

  5. Töltse fel a korábban létrehozott mytestrootcert_cert.pem nevű főtanúsítványfájlt.

  6. Ha olyan köztes vagy főtanúsítvány-szolgáltatót használ, amelyben megbízik, és tudja, hogy teljes mértékben rendelkezik a tanúsítvány tulajdonjogával, önigazolással ellenőrizheti, hogy a tanúsítványt igazolta-e a feltöltéskor a Be gombra való feltöltéskor. Ellenkező esetben állítsa be a tanúsítvány állapotát a Ki gombra való feltöltés során.

  7. Ha a kikapcsolva való feltöltéskor igazolt tanúsítványállapotot állítja be, válassza az Ellenőrző kód létrehozása lehetőséget.

  8. Másolja ki az ellenőrző kódot, másolja ki, majd hozzon létre egy X.509 ellenőrző tanúsítványt. Például a parancssorban:

    node create_test_cert.js verification --ca mytestrootcert_cert.pem --key mytestrootcert_key.pem --nonce  {verification-code}
    
  9. Válassza az Ellenőrzés lehetőséget az aláírt ellenőrző tanúsítvány verification_cert.pem feltöltéséhez az ellenőrzés befejezéséhez.

  10. Az elsődleges tanúsítvány állapota mostantól ellenőrzött:

    Screenshot that shows a verified X509 certificate.

Most már csatlakoztathatja azokat az eszközöket, amelyek az elsődleges főtanúsítványból származó X.509-tanúsítvánnyal rendelkeznek.

A regisztrációs csoport mentése után jegyezze fel az azonosító hatókörét. Később szüksége lesz rá.

Eszközkód minta futtatása

Windows használata esetén az X.509-tanúsítványoknak a Windows tanúsítványtárolójában kell lenniük ahhoz, hogy a minta működjön. A Windows Intézőben kattintson duplán a korábban létrehozott PFX-fájlokra – mytestrootcert.pfx és sampleDevice01.pfx. A Tanúsítványimportálás varázslóban válassza az Aktuális felhasználó lehetőséget tárolóhelyként, adja meg 1234 a jelszót, és hagyja, hogy a varázsló automatikusan válassza ki a tanúsítványtárolót. A varázsló importálja a tanúsítványokat az aktuális felhasználó személyes tárolójába.

A mintakód módosítása az X.509-tanúsítványok használatára:

  1. Az IoTHubDeviceSamples Visual Studio-megoldásban nyissa meg a Parameter.cs fájlt a TemperatureController projektben.

  2. Adja hozzá a következő két paraméterdefiníciót az osztályhoz:

    [Option(
        'x',
        "CertificatePath",
        HelpText = "(Required if DeviceSecurityType is \"dps\"). \nThe device PFX file to use during device provisioning." +
        "\nDefaults to environment variable \"IOTHUB_DEVICE_X509_CERT\".")]
    public string CertificatePath { get; set; } = Environment.GetEnvironmentVariable("IOTHUB_DEVICE_X509_CERT");
    
    [Option(
        'p',
        "CertificatePassword",
        HelpText = "(Required if DeviceSecurityType is \"dps\"). \nThe password of the PFX certificate file." +
        "\nDefaults to environment variable \"IOTHUB_DEVICE_X509_PASSWORD\".")]
    public string CertificatePassword { get; set; } = Environment.GetEnvironmentVariable("IOTHUB_DEVICE_X509_PASSWORD");
    

    Mentse el a módosításokat.

  3. Az IoTHubDeviceSamples Visual Studio-megoldásban nyissa meg a Program.cs fájlt a TemperatureController projektben.

  4. Adja hozzá a következő using-utasításokat:

    using System.Security.Cryptography.X509Certificates;
    using System.IO;
    
  5. Adja hozzá a következő metódust a osztályhoz:

    private static X509Certificate2 LoadProvisioningCertificate(Parameters parameters)
    {
        var certificateCollection = new X509Certificate2Collection();
        certificateCollection.Import(
            parameters.CertificatePath,
            parameters.CertificatePassword,
            X509KeyStorageFlags.UserKeySet);
    
        X509Certificate2 certificate = null;
    
        foreach (X509Certificate2 element in certificateCollection)
        {
            Console.WriteLine($"Found certificate: {element?.Thumbprint} {element?.Subject}; PrivateKey: {element?.HasPrivateKey}");
            if (certificate == null && element.HasPrivateKey)
            {
                certificate = element;
            }
            else
            {
                element.Dispose();
            }
        }
    
        if (certificate == null)
        {
            throw new FileNotFoundException($"{parameters.CertificatePath} did not contain any certificate with a private key.");
        }
    
        Console.WriteLine($"Using certificate {certificate.Thumbprint} {certificate.Subject}");
    
        return certificate;
    }
    
  6. A metódusban SetupDeviceClientAsync cserélje le a kódblokkot a következő kódra case "dps" :

    case "dps":
        s_logger.LogDebug($"Initializing via DPS");
        Console.WriteLine($"Loading the certificate...");
        X509Certificate2 certificate = LoadProvisioningCertificate(parameters);
        DeviceRegistrationResult dpsRegistrationResult = await ProvisionDeviceAsync(parameters, certificate, cancellationToken);
        var authMethod = new DeviceAuthenticationWithX509Certificate(dpsRegistrationResult.DeviceId, certificate);
        deviceClient = InitializeDeviceClient(dpsRegistrationResult.AssignedHub, authMethod);
        break;
    
  7. Cserélje le az ProvisionDeviceAsync metódust az alábbi kódra:

    private static async Task<DeviceRegistrationResult> ProvisionDeviceAsync(Parameters parameters, X509Certificate2 certificate, CancellationToken cancellationToken)
    {
        SecurityProvider security = new SecurityProviderX509Certificate(certificate);
        ProvisioningTransportHandler mqttTransportHandler = new ProvisioningTransportHandlerMqtt();
        ProvisioningDeviceClient pdc = ProvisioningDeviceClient.Create(parameters.DpsEndpoint, parameters.DpsIdScope, security, mqttTransportHandler);
    
        var pnpPayload = new ProvisioningRegistrationAdditionalData
        {
            JsonData = PnpConvention.CreateDpsPayload(ModelId),
        };
        return await pdc.RegisterAsync(pnpPayload, cancellationToken);
    }
    

    Mentse el a módosításokat.

A minta futtatása:

  1. Adja hozzá a következő környezeti változókat a projekthez:

    • IOTHUB_DEVICE_X509_CERT: <full path to folder that contains PFX files>sampleDevice01.pfx
    • IOTHUB_DEVICE_X509_PASSWORD: 1234.
  2. Hozza létre és futtassa az alkalmazást. Ellenőrizze az eszköz kikötéseinek sikerességét.

A mintakód módosítása az X.509-tanúsítványok használatára:

  1. Keresse meg az azure-iot-sdk-java/device/iot-device-samples/pnp-device-sample/temperature-controller-device-sample mappát, amely tartalmazza a hőmérséklet-vezérlő eszközmintájának pom.xml fájlját és src mappáját.

  2. Szerkessze a pom.xml fájlt a következő függőségi konfiguráció hozzáadásához a <dependencies> csomóponton:

    <dependency>
        <groupId>com.microsoft.azure.sdk.iot.provisioning.security</groupId>
        <artifactId>${x509-provider-artifact-id}</artifactId>
        <version>${x509-provider-version}</version>
    </dependency>
    

    Mentse el a módosításokat.

  3. Nyissa meg az src/main/java/samples/com/microsoft/azure/sdk/iot/device/TemperatureController.java fájlt a szövegszerkesztőben.

  4. Cserélje le az importálást SecurityProviderSymmetricKey a következő importálásra:

    import com.microsoft.azure.sdk.iot.provisioning.security.SecurityProvider;
    import com.microsoft.azure.sdk.iot.provisioning.security.hsm.SecurityProviderX509Cert;
    import com.microsoft.azure.sdk.iot.provisioning.security.exceptions.SecurityProviderException;
    
  5. Adja hozzá a következő importálást:

    import java.nio.file.*;
    
  6. Adja hozzá SecurityProviderException a metódus által elvetett kivételek main listájához:

    public static void main(String[] args) throws IOException, URISyntaxException, ProvisioningDeviceClientException, InterruptedException, SecurityProviderException {
    
  7. Cserélje le az initializeAndProvisionDevice metódust az alábbi kódra:

    private static void initializeAndProvisionDevice() throws ProvisioningDeviceClientException, IOException, URISyntaxException, InterruptedException, SecurityProviderException {
        String deviceX509Key = new String(Files.readAllBytes(Paths.get(System.getenv("IOTHUB_DEVICE_X509_KEY"))));
        String deviceX509Cert = new String(Files.readAllBytes(Paths.get(System.getenv("IOTHUB_DEVICE_X509_CERT"))));
        SecurityProvider securityProviderX509 = new SecurityProviderX509Cert(deviceX509Cert, deviceX509Key, null);
        ProvisioningDeviceClient provisioningDeviceClient;
        ProvisioningStatus provisioningStatus = new ProvisioningStatus();
    
        provisioningDeviceClient = ProvisioningDeviceClient.create(globalEndpoint, scopeId, provisioningProtocol, securityProviderX509);
    
        AdditionalData additionalData = new AdditionalData();
        additionalData.setProvisioningPayload(com.microsoft.azure.sdk.iot.provisioning.device.plugandplay.PnpHelper.createDpsPayload(MODEL_ID));
    
        provisioningDeviceClient.registerDevice(new ProvisioningDeviceClientRegistrationCallbackImpl(), provisioningStatus, additionalData);
    
        while (provisioningStatus.provisioningDeviceClientRegistrationInfoClient.getProvisioningDeviceClientStatus() != ProvisioningDeviceClientStatus.PROVISIONING_DEVICE_STATUS_ASSIGNED)
        {
            if (provisioningStatus.provisioningDeviceClientRegistrationInfoClient.getProvisioningDeviceClientStatus() == ProvisioningDeviceClientStatus.PROVISIONING_DEVICE_STATUS_ERROR ||
                    provisioningStatus.provisioningDeviceClientRegistrationInfoClient.getProvisioningDeviceClientStatus() == ProvisioningDeviceClientStatus.PROVISIONING_DEVICE_STATUS_DISABLED ||
                    provisioningStatus.provisioningDeviceClientRegistrationInfoClient.getProvisioningDeviceClientStatus() == ProvisioningDeviceClientStatus.PROVISIONING_DEVICE_STATUS_FAILED)
            {
                provisioningStatus.exception.printStackTrace();
                System.out.println("Registration error, bailing out");
                break;
            }
            System.out.println("Waiting for Provisioning Service to register");
            Thread.sleep(MAX_TIME_TO_WAIT_FOR_REGISTRATION);
        }
    
        ClientOptions options = new ClientOptions();
        options.setModelId(MODEL_ID);
    
        if (provisioningStatus.provisioningDeviceClientRegistrationInfoClient.getProvisioningDeviceClientStatus() == ProvisioningDeviceClientStatus.PROVISIONING_DEVICE_STATUS_ASSIGNED) {
            System.out.println("IotHUb Uri : " + provisioningStatus.provisioningDeviceClientRegistrationInfoClient.getIothubUri());
            System.out.println("Device ID : " + provisioningStatus.provisioningDeviceClientRegistrationInfoClient.getDeviceId());
    
            String iotHubUri = provisioningStatus.provisioningDeviceClientRegistrationInfoClient.getIothubUri();
            String deviceId = provisioningStatus.provisioningDeviceClientRegistrationInfoClient.getDeviceId();
    
            log.debug("Opening the device client.");
            deviceClient = DeviceClient.createFromSecurityProvider(iotHubUri, deviceId, securityProviderX509, IotHubClientProtocol.MQTT, options);
            deviceClient.open();
        }
    }
    

    Mentse el a módosításokat.

A minta futtatása:

  1. A rendszerhéj-környezetben adja hozzá a következő két környezeti változót. Győződjön meg arról, hogy megadja a PEM-fájlok teljes elérési útját, és használja az operációs rendszer megfelelő elérési útját:

    set IOTHUB_DEVICE_X509_CERT=<full path to folder that contains PEM files>sampleDevice01_cert.pem
    set IOTHUB_DEVICE_X509_KEY=<full path to folder that contains PEM files>sampleDevice01_key.pem
    

    Tipp.

    A többi szükséges környezeti változót az ügyfélalkalmazás létrehozása és csatlakoztatása az Azure IoT Central-alkalmazás oktatóanyagának elvégzésekor állítja be.

  2. Hozza létre és futtassa az alkalmazást. Ellenőrizze az eszköz kikötéseinek sikerességét.

A mintakód módosítása az X.509-tanúsítványok használatára:

  1. Nyissa meg az azure-iot-sdk-node/device/samples/javascript mappát, amely tartalmazza a pnp_temperature_controller.js alkalmazást, és futtassa a következő parancsot az X.509-csomag telepítéséhez:

    npm install azure-iot-security-x509 --save
    
  2. Nyissa meg a pnp_temperature_controller.js fájlt egy szövegszerkesztőben.

  3. Szerkessze az require utasításokat a következő kód belefoglalásához:

    const fs = require('fs');
    const X509Security = require('azure-iot-security-x509').X509Security;
    
  4. Adja hozzá a következő négy sort a "DPS kapcsolati információk" szakaszhoz a deviceCert változó inicializálásához:

    const deviceCert = {
      cert: fs.readFileSync(process.env.IOTHUB_DEVICE_X509_CERT).toString(),
      key: fs.readFileSync(process.env.IOTHUB_DEVICE_X509_KEY).toString()
    };
    
  5. Szerkessze az provisionDevice ügyfelet létrehozó függvényt úgy, hogy az első sort a következő kódra cseréli:

    var provSecurityClient = new X509Security(registrationId, deviceCert);
    
  6. Ugyanebben a függvényben módosítsa a változót a deviceConnectionString következőképpen beállító sort:

    deviceConnectionString = 'HostName=' + result.assignedHub + ';DeviceId=' + result.deviceId + ';x509=true';
    
  7. A függvényben main adja hozzá a következő sort a hívott Client.fromConnectionStringsor után:

    client.setOptions(deviceCert);
    

    Mentse el a módosításokat.

A minta futtatása:

  1. A rendszerhéj-környezetben adja hozzá a következő két környezeti változót. Győződjön meg arról, hogy megadja a PEM-fájlok teljes elérési útját, és használja az operációs rendszer megfelelő elérési útját:

    set IOTHUB_DEVICE_X509_CERT=<full path to folder that contains PEM files>sampleDevice01_cert.pem
    set IOTHUB_DEVICE_X509_KEY=<full path to folder that contains PEM files>sampleDevice01_key.pem
    

    Tipp.

    A többi szükséges környezeti változót az ügyfélalkalmazás létrehozása és csatlakoztatása az Azure IoT Central-alkalmazás oktatóanyagának elvégzésekor állítja be.

  2. Hajtsa végre a szkriptet, és ellenőrizze, hogy az eszköz ki van-e helyezve:

    node pnp_temperature_controller.js
    

A mintakód módosítása az X.509-tanúsítványok használatára:

  1. Lépjen az azure-iot-device/samples/pnp mappába, és nyissa meg a temp_controller_with_thermostats.py fájlt egy szövegszerkesztőben.

  2. Adja hozzá a következő from utasítást az X.509-funkció importálásához:

    from azure.iot.device import X509
    
  3. Módosítsa a függvény első részét az provision_device alábbiak szerint:

    async def provision_device(provisioning_host, id_scope, registration_id, x509, model_id):
        provisioning_device_client = ProvisioningDeviceClient.create_from_x509_certificate(
            provisioning_host=provisioning_host,
            registration_id=registration_id,
            id_scope=id_scope,
            x509=x509,
        )
    
  4. A függvényben main cserélje le a változót symmetric_key a következő kódra állító sort:

    x509 = X509(
        cert_file=os.getenv("IOTHUB_DEVICE_X509_CERT"),
        key_file=os.getenv("IOTHUB_DEVICE_X509_KEY"),
    )
    
  5. A függvényben main cserélje le a függvény hívását provision_device a következő kódra:

    registration_result = await provision_device(
        provisioning_host, id_scope, registration_id, x509, model_id
    )
    
  6. A függvényben main cserélje le a függvény hívását IoTHubDeviceClient.create_from_symmetric_key a következő kódra:

    device_client = IoTHubDeviceClient.create_from_x509_certificate(
        x509=x509,
        hostname=registration_result.registration_state.assigned_hub,
        device_id=registration_result.registration_state.device_id,
        product_info=model_id,
    )
    

    Mentse el a módosításokat.

A minta futtatása:

  1. A rendszerhéj-környezetben adja hozzá a következő két környezeti változót. Győződjön meg arról, hogy megadja a PEM-fájlok teljes elérési útját, és használja az operációs rendszer megfelelő elérési útját:

    set IOTHUB_DEVICE_X509_CERT=<full path to folder that contains PEM files>sampleDevice01_cert.pem
    set IOTHUB_DEVICE_X509_KEY=<full path to folder that contains PEM files>sampleDevice01_key.pem
    

    Tipp.

    A többi szükséges környezeti változót az ügyfélalkalmazás létrehozása és csatlakoztatása az Azure IoT Central-alkalmazás oktatóanyagának elvégzésekor állítja be.

  2. Hajtsa végre a szkriptet, és ellenőrizze, hogy az eszköz ki van-e helyezve:

    python temp_controller_with_thermostats.py
    

Ellenőrizze, hogy a telemetria megjelenik-e az eszköznézetben az IoT Central-alkalmazásban:

Screenshot showing telemetry from a device that connected using X.509.

Egyéni regisztráció használata

Az X.509-tanúsítványokkal egyéni regisztrációval tesztelheti az eszközt és a megoldást. Egyéni regisztráció esetén nincs gyökér- vagy köztes X.509-tanúsítvány az IoT Central-alkalmazásban. Az eszközök önaláírt X.509-tanúsítványt használnak az alkalmazáshoz való csatlakozáshoz.

Önaláírt eszköztanúsítvány létrehozása

Ebben a szakaszban egy önaláírt X.509-tanúsítvány használatával csatlakoztatja az egyes regisztrációhoz szükséges eszközöket, amelyek egyetlen eszköz regisztrálására szolgálnak. Az önaláírt tanúsítványok csak tesztelésre használhatók.

Figyelmeztetés

Az X.509-tanúsítványok létrehozásának ez a módja csak tesztelésre használható. Éles környezetben a tanúsítványgenerálás hivatalos, biztonságos mechanizmusát kell használnia.

Hozzon létre egy önaláírt X.509-eszköztanúsítványt az alábbi parancsok futtatásával:

  cd azure-iot-sdk-node/provisioning/tools
  node create_test_cert.js device mytestselfcertprimary
  node create_test_cert.js device mytestselfcertsecondary 

Tipp.

Az eszközazonosító tartalmazhat betűket, számokat és karaktereket - .

Ezek a parancsok a következő eszköztanúsítványokat állítják elő:

fájlnév Tartalmát
mytestselfcertprimary_cert.pem Az elsődleges eszköz X509-tanúsítványának nyilvános része
mytestselfcertprimary_key.pem Az elsődleges X509-tanúsítvány titkos kulcsa
mytestselfcertprimary_fullchain.pem Az elsődleges eszköz X509-tanúsítványának teljes kulcslánca.
mytestselfcertprimary.pfx Az elsődleges X509-tanúsítvány PFX-fájlja.
mytestselfcertsecondary_cert.pem A másodlagos X509-tanúsítvány nyilvános része
mytestselfcertsecondary_key.pem A másodlagos X509-tanúsítvány titkos kulcsa
mytestselfcertsecondary_fullchain.pem A másodlagos X509-tanúsítvány teljes kulcslánca.
mytestselfcertsecondary.pfx A másodlagos X509-tanúsítvány PFX-fájlja.

Egyéni regisztráció létrehozása

  1. Az Azure IoT Central-alkalmazásban válassza az Eszközök lehetőséget, és hozzon létre egy új eszközt az eszközazonosítóvala termosztát eszközsablonjának mytestselfcertprimaryjaként. Jegyezze fel az azonosító hatókörét, amelyet később fog használni.

  2. Nyissa meg a létrehozott eszközt, és válassza a Csatlakozás.

  3. Hitelesítési módszerként válassza az egyéni regisztrációt, hitelesítési módszerkéntpedig a tanúsítványokat (X.509).

  4. Töltse fel a korábban elsődleges tanúsítványként létrehozott mytestselfcertprimary_cert.pem fájlt.

  5. Töltse fel a korábban másodlagos tanúsítványként létrehozott mytestselfcertsecondary_cert.pem fájlt. Ezután válassza a Mentés lehetőséget.

  6. Az eszköz most már egyéni regisztrációval rendelkezik X.509-tanúsítványokkal.

    Screenshot that shows how to connect a device using an X.509 individual enrollment.

Minta egyéni regisztrációs eszköz futtatása

Windows használata esetén az X.509-tanúsítványoknak a Windows tanúsítványtárolójában kell lenniük ahhoz, hogy a minta működjön. A Windows Intézőben kattintson duplán a korábban létrehozott PFX-fájlokra – mytestselfcertprimary.pfx és mytestselfcertsecondary.pfx. A Tanúsítványimportálás varázslóban válassza az Aktuális felhasználó lehetőséget tárolóhelyként, adja meg 1234 a jelszót, és hagyja, hogy a varázsló automatikusan válassza ki a tanúsítványtárolót. A varázsló importálja a tanúsítványokat az aktuális felhasználó személyes tárolójába.

A mintakód módosítása az X.509-tanúsítványok használatára:

  1. Az IoTHubDeviceSamples Visual Studio-megoldásban nyissa meg a Parameter.cs fájlt a TemperatureController projektben.

  2. Adja hozzá a következő két paraméterdefiníciót az osztályhoz:

    [Option(
        'x',
        "CertificatePath",
        HelpText = "(Required if DeviceSecurityType is \"dps\"). \nThe device PFX file to use during device provisioning." +
        "\nDefaults to environment variable \"IOTHUB_DEVICE_X509_CERT\".")]
    public string CertificatePath { get; set; } = Environment.GetEnvironmentVariable("IOTHUB_DEVICE_X509_CERT");
    
    [Option(
        'p',
        "CertificatePassword",
        HelpText = "(Required if DeviceSecurityType is \"dps\"). \nThe password of the PFX certificate file." +
        "\nDefaults to environment variable \"IOTHUB_DEVICE_X509_PASSWORD\".")]
    public string CertificatePassword { get; set; } = Environment.GetEnvironmentVariable("IOTHUB_DEVICE_X509_PASSWORD");
    

    Mentse el a módosításokat.

  3. Az IoTHubDeviceSamples Visual Studio-megoldásban nyissa meg a Program.cs fájlt a TemperatureController projektben.

  4. Adja hozzá a következő using-utasításokat:

    using System.Security.Cryptography.X509Certificates;
    using System.IO;
    
  5. Adja hozzá a következő metódust a osztályhoz:

    private static X509Certificate2 LoadProvisioningCertificate(Parameters parameters)
    {
        var certificateCollection = new X509Certificate2Collection();
        certificateCollection.Import(
            parameters.CertificatePath,
            parameters.CertificatePassword,
            X509KeyStorageFlags.UserKeySet);
    
        X509Certificate2 certificate = null;
    
        foreach (X509Certificate2 element in certificateCollection)
        {
            Console.WriteLine($"Found certificate: {element?.Thumbprint} {element?.Subject}; PrivateKey: {element?.HasPrivateKey}");
            if (certificate == null && element.HasPrivateKey)
            {
                certificate = element;
            }
            else
            {
                element.Dispose();
            }
        }
    
        if (certificate == null)
        {
            throw new FileNotFoundException($"{parameters.CertificatePath} did not contain any certificate with a private key.");
        }
    
        Console.WriteLine($"Using certificate {certificate.Thumbprint} {certificate.Subject}");
    
        return certificate;
    }
    
  6. A metódusban SetupDeviceClientAsync cserélje le a kódblokkot a következő kódra case "dps" :

    case "dps":
        s_logger.LogDebug($"Initializing via DPS");
        Console.WriteLine($"Loading the certificate...");
        X509Certificate2 certificate = LoadProvisioningCertificate(parameters);
        DeviceRegistrationResult dpsRegistrationResult = await ProvisionDeviceAsync(parameters, certificate, cancellationToken);
        var authMethod = new DeviceAuthenticationWithX509Certificate(dpsRegistrationResult.DeviceId, certificate);
        deviceClient = InitializeDeviceClient(dpsRegistrationResult.AssignedHub, authMethod);
        break;
    
  7. Cserélje le az ProvisionDeviceAsync metódust az alábbi kódra:

    private static async Task<DeviceRegistrationResult> ProvisionDeviceAsync(Parameters parameters, X509Certificate2 certificate, CancellationToken cancellationToken)
    {
        SecurityProvider security = new SecurityProviderX509Certificate(certificate);
        ProvisioningTransportHandler mqttTransportHandler = new ProvisioningTransportHandlerMqtt();
        ProvisioningDeviceClient pdc = ProvisioningDeviceClient.Create(parameters.DpsEndpoint, parameters.DpsIdScope, security, mqttTransportHandler);
    
        var pnpPayload = new ProvisioningRegistrationAdditionalData
        {
            JsonData = PnpConvention.CreateDpsPayload(ModelId),
        };
        return await pdc.RegisterAsync(pnpPayload, cancellationToken);
    }
    

    Mentse el a módosításokat.

A minta futtatása:

  1. Adja hozzá a következő környezeti változókat a projekthez:

    • IOTHUB_DEVICE_DPS_DEVICE_ID: mytestselfcertprimary
    • IOTHUB_DEVICE_X509_CERT: <full path to folder that contains PFX files>mytestselfcertprimary.pfx
    • IOTHUB_DEVICE_X509_PASSWORD: 1234.
  2. Hozza létre és futtassa az alkalmazást. Ellenőrizze az eszköz kikötéseinek sikerességét.

A mintakód módosítása az X.509-tanúsítványok használatára:

  1. Keresse meg az azure-iot-sdk-java/device/iot-device-samples/pnp-device-sample/temperature-controller-device-sample mappát, amely tartalmazza a hőmérséklet-vezérlő eszközmintájának pom.xml fájlját és src mappáját.

  2. Szerkessze a pom.xml fájlt a következő függőségi konfiguráció hozzáadásához a <dependencies> csomóponton:

    <dependency>
        <groupId>com.microsoft.azure.sdk.iot.provisioning.security</groupId>
        <artifactId>${x509-provider-artifact-id}</artifactId>
        <version>${x509-provider-version}</version>
    </dependency>
    

    Mentse el a módosításokat.

  3. Nyissa meg az src/main/java/samples/com/microsoft/azure/sdk/iot/device/TemperatureController.java fájlt a szövegszerkesztőben.

  4. Cserélje le az importálást SecurityProviderSymmetricKey a következő importálásra:

    import com.microsoft.azure.sdk.iot.provisioning.security.SecurityProvider;
    import com.microsoft.azure.sdk.iot.provisioning.security.hsm.SecurityProviderX509Cert;
    import com.microsoft.azure.sdk.iot.provisioning.security.exceptions.SecurityProviderException;
    
  5. Adja hozzá a következő importálást:

    import java.nio.file.*;
    
  6. Adja hozzá SecurityProviderException a metódus által elvetett kivételek main listájához:

    public static void main(String[] args) throws IOException, URISyntaxException, ProvisioningDeviceClientException, InterruptedException, SecurityProviderException {
    
  7. Cserélje le az initializeAndProvisionDevice metódust az alábbi kódra:

    private static void initializeAndProvisionDevice() throws ProvisioningDeviceClientException, IOException, URISyntaxException, InterruptedException, SecurityProviderException {
        String deviceX509Key = new String(Files.readAllBytes(Paths.get(System.getenv("IOTHUB_DEVICE_X509_KEY"))));
        String deviceX509Cert = new String(Files.readAllBytes(Paths.get(System.getenv("IOTHUB_DEVICE_X509_CERT"))));
        SecurityProvider securityProviderX509 = new SecurityProviderX509Cert(deviceX509Cert, deviceX509Key, null);
        ProvisioningDeviceClient provisioningDeviceClient;
        ProvisioningStatus provisioningStatus = new ProvisioningStatus();
    
        provisioningDeviceClient = ProvisioningDeviceClient.create(globalEndpoint, scopeId, provisioningProtocol, securityProviderX509);
    
        AdditionalData additionalData = new AdditionalData();
        additionalData.setProvisioningPayload(com.microsoft.azure.sdk.iot.provisioning.device.plugandplay.PnpHelper.createDpsPayload(MODEL_ID));
    
        provisioningDeviceClient.registerDevice(new ProvisioningDeviceClientRegistrationCallbackImpl(), provisioningStatus, additionalData);
    
        while (provisioningStatus.provisioningDeviceClientRegistrationInfoClient.getProvisioningDeviceClientStatus() != ProvisioningDeviceClientStatus.PROVISIONING_DEVICE_STATUS_ASSIGNED)
        {
            if (provisioningStatus.provisioningDeviceClientRegistrationInfoClient.getProvisioningDeviceClientStatus() == ProvisioningDeviceClientStatus.PROVISIONING_DEVICE_STATUS_ERROR ||
                    provisioningStatus.provisioningDeviceClientRegistrationInfoClient.getProvisioningDeviceClientStatus() == ProvisioningDeviceClientStatus.PROVISIONING_DEVICE_STATUS_DISABLED ||
                    provisioningStatus.provisioningDeviceClientRegistrationInfoClient.getProvisioningDeviceClientStatus() == ProvisioningDeviceClientStatus.PROVISIONING_DEVICE_STATUS_FAILED)
            {
                provisioningStatus.exception.printStackTrace();
                System.out.println("Registration error, bailing out");
                break;
            }
            System.out.println("Waiting for Provisioning Service to register");
            Thread.sleep(MAX_TIME_TO_WAIT_FOR_REGISTRATION);
        }
    
        ClientOptions options = new ClientOptions();
        options.setModelId(MODEL_ID);
    
        if (provisioningStatus.provisioningDeviceClientRegistrationInfoClient.getProvisioningDeviceClientStatus() == ProvisioningDeviceClientStatus.PROVISIONING_DEVICE_STATUS_ASSIGNED) {
            System.out.println("IotHUb Uri : " + provisioningStatus.provisioningDeviceClientRegistrationInfoClient.getIothubUri());
            System.out.println("Device ID : " + provisioningStatus.provisioningDeviceClientRegistrationInfoClient.getDeviceId());
    
            String iotHubUri = provisioningStatus.provisioningDeviceClientRegistrationInfoClient.getIothubUri();
            String deviceId = provisioningStatus.provisioningDeviceClientRegistrationInfoClient.getDeviceId();
    
            log.debug("Opening the device client.");
            deviceClient = DeviceClient.createFromSecurityProvider(iotHubUri, deviceId, securityProviderX509, IotHubClientProtocol.MQTT, options);
            deviceClient.open();
        }
    }
    

    Mentse el a módosításokat.

A minta futtatása:

  1. A rendszerhéj-környezetben adja hozzá a következő két környezeti változót. Győződjön meg arról, hogy megadja a PEM-fájlok teljes elérési útját, és használja az operációs rendszer megfelelő elérési útját:

    set IOTHUB_DEVICE_DPS_DEVICE_ID=mytestselfcertprimary
    set IOTHUB_DEVICE_X509_CERT=<full path to folder that contains PEM files>mytestselfcertprimary_cert.pem
    set IOTHUB_DEVICE_X509_KEY=<full path to folder that contains PEM files>mytestselfcertprimary_key.pem
    

    Tipp.

    A többi szükséges környezeti változót az ügyfélalkalmazás létrehozása és csatlakoztatása az Azure IoT Central-alkalmazás oktatóanyagának elvégzésekor állítja be.

  2. Hozza létre és futtassa az alkalmazást. Ellenőrizze az eszköz kikötéseinek sikerességét.

A mytestselfcertsecondary tanúsítványra vonatkozó fenti lépéseket is megismételheti.

A mintakód módosítása az X.509-tanúsítványok használatára:

  1. Nyissa meg az azure-iot-sdk-node/device/samples/javascript mappát, amely tartalmazza a pnp_temperature_controller.js alkalmazást, és futtassa a következő parancsot az X.509-csomag telepítéséhez:

    npm install azure-iot-security-x509 --save
    
  2. Nyissa meg a pnp_temperature_controller.js fájlt egy szövegszerkesztőben.

  3. Szerkessze az require utasításokat a következő kód belefoglalásához:

    const fs = require('fs');
    const X509Security = require('azure-iot-security-x509').X509Security;
    
  4. Adja hozzá a következő négy sort a "DPS kapcsolati információk" szakaszhoz a deviceCert változó inicializálásához:

    const deviceCert = {
      cert: fs.readFileSync(process.env.IOTHUB_DEVICE_X509_CERT).toString(),
      key: fs.readFileSync(process.env.IOTHUB_DEVICE_X509_KEY).toString()
    };
    
  5. Szerkessze az provisionDevice ügyfelet létrehozó függvényt úgy, hogy az első sort a következő kódra cseréli:

    var provSecurityClient = new X509Security(registrationId, deviceCert);
    
  6. Ugyanebben a függvényben módosítsa a változót a deviceConnectionString következőképpen beállító sort:

    deviceConnectionString = 'HostName=' + result.assignedHub + ';DeviceId=' + result.deviceId + ';x509=true';
    
  7. A függvényben main adja hozzá a következő sort a hívott Client.fromConnectionStringsor után:

    client.setOptions(deviceCert);
    

    Mentse el a módosításokat.

A minta futtatása:

  1. A rendszerhéj-környezetben adja hozzá a következő két környezeti változót. Győződjön meg arról, hogy megadja a PEM-fájlok teljes elérési útját, és használja az operációs rendszer megfelelő elérési útját:

    set IOTHUB_DEVICE_DPS_DEVICE_ID=mytestselfcertprimary
    set IOTHUB_DEVICE_X509_CERT=<full path to folder that contains PEM files>mytestselfcertprimary_cert.pem
    set IOTHUB_DEVICE_X509_KEY=<full path to folder that contains PEM files>mytestselfcertprimary_key.pem
    

    Tipp.

    A többi szükséges környezeti változót az ügyfélalkalmazás létrehozása és csatlakoztatása az Azure IoT Central-alkalmazás oktatóanyagának elvégzésekor állítja be.

  2. Hajtsa végre a szkriptet, és ellenőrizze, hogy az eszköz ki van-e helyezve:

    node pnp_temperature_controller.js
    

A mytestselfcertsecondary tanúsítványra vonatkozó fenti lépéseket is megismételheti.

A mintakód módosítása az X.509-tanúsítványok használatára:

  1. Lépjen az azure-iot-device/samples/pnp mappába, és nyissa meg a temp_controller_with_thermostats.py fájlt egy szövegszerkesztőben.

  2. Adja hozzá a következő from utasítást az X.509-funkció importálásához:

    from azure.iot.device import X509
    
  3. Módosítsa a függvény első részét az provision_device alábbiak szerint:

    async def provision_device(provisioning_host, id_scope, registration_id, x509, model_id):
        provisioning_device_client = ProvisioningDeviceClient.create_from_x509_certificate(
            provisioning_host=provisioning_host,
            registration_id=registration_id,
            id_scope=id_scope,
            x509=x509,
        )
    
  4. A függvényben main cserélje le a változót symmetric_key a következő kódra állító sort:

    x509 = X509(
        cert_file=os.getenv("IOTHUB_DEVICE_X509_CERT"),
        key_file=os.getenv("IOTHUB_DEVICE_X509_KEY"),
    )
    
  5. A függvényben main cserélje le a függvény hívását provision_device a következő kódra:

    registration_result = await provision_device(
        provisioning_host, id_scope, registration_id, x509, model_id
    )
    
  6. A függvényben main cserélje le a függvény hívását IoTHubDeviceClient.create_from_symmetric_key a következő kódra:

    device_client = IoTHubDeviceClient.create_from_x509_certificate(
        x509=x509,
        hostname=registration_result.registration_state.assigned_hub,
        device_id=registration_result.registration_state.device_id,
        product_info=model_id,
    )
    

    Mentse el a módosításokat.

A minta futtatása:

  1. A rendszerhéj-környezetben adja hozzá a következő két környezeti változót. Győződjön meg arról, hogy megadja a PEM-fájlok teljes elérési útját, és használja az operációs rendszer megfelelő elérési útját:

    set IOTHUB_DEVICE_DPS_DEVICE_ID=mytestselfcertprimary
    set IOTHUB_DEVICE_X509_CERT=<full path to folder that contains PEM files>mytestselfcertprimary_cert.pem
    set IOTHUB_DEVICE_X509_KEY=<full path to folder that contains PEM files>mytestselfcertprimary_key.pem
    

    Tipp.

    A többi szükséges környezeti változót az ügyfélalkalmazás létrehozása és csatlakoztatása az Azure IoT Central-alkalmazás oktatóanyagának elvégzésekor állítja be.

  2. Hajtsa végre a szkriptet, és ellenőrizze, hogy az eszköz ki van-e helyezve:

    python temp_controller_with_thermostats.py
    

A mytestselfcertsecondary tanúsítványra vonatkozó fenti lépéseket is megismételheti.

IoT Edge-eszköz csatlakoztatása

Ez a szakasz feltételezi, hogy csoportregisztrációt használ az IoT Edge-eszköz csatlakoztatásához. Kövesse az előző szakaszokban leírt lépéseket a következőkhöz:

Az IoT Edge-eszköz csatlakoztatása az IoT Centralhoz az X.509-eszköztanúsítvány használatával:

  • Másolja az eszköztanúsítványt és a kulcsfájlokat az IoT Edge-eszközre. Az előző csoportregisztrációs példában ezeket a fájlokat sampleDevice01_key.pem-nek és sampleDevice01_cert.pem-nek hívták.

  • Az IoT Edge-eszközön szerkessze provisioning az /etc/aziot/config.toml konfigurációs fájl szakaszát az alábbiak szerint:

    # DPS X.509 provisioning configuration
    provisioning:
      source: "dps"
      global_endpoint: "https://global.azure-devices-provisioning.net"
      scope_id: "<SCOPE_ID>"
      attestation:
        method: "x509"
    #   registration_id: "<OPTIONAL REGISTRATION ID. LEAVE COMMENTED OUT TO REGISTER WITH CN OF identity_cert>"
        identity_cert: "file:///<path>/sampleDevice01_cert.pem"
        identity_pk: "file:///<path>/sampleDevice01_key.pem"
    #  always_reprovision_on_startup: true
    #  dynamic_reprovisioning: false
    
    [provisioning]
    source = "dps"
    global_endpoint = "https://global.azure-devices-provisioning.net"
    id_scope = "<SCOPE_ID>"
    
    [provisioning.attestation]
    method = "x509"
    registration_id = "env-sens-001"
    identity_pk = "file:///<path>/envSens001_key.pem"
    identity_cert = "file:///<path>/envSens001_cert.pem"
    

    Tipp.

    Nem kell értéket hozzáadnia a registration_id. Az IoT Edge használhatja az X.509-tanúsítvány CN-értékét .

  • Futtassa a következő parancsot az IoT Edge-futtatókörnyezet újraindításához:

    sudo iotedge config apply
    

További információ: IoT Edge-eszközök létrehozása és kiépítése nagy méretekben Linuxon X.509-tanúsítványokkal.

alsóbb rétegbeli eszköz Csatlakozás az IoT Edge-be

Az IoT Edge X.509-tanúsítványokkal biztosítja az alsóbb rétegbeli eszközök és egy transzparens átjáróként működő IoT Edge-eszköz közötti kapcsolatot. A forgatókönyv konfigurálásával kapcsolatos további információkért tekintse meg Csatlakozás egy alsóbb rétegbeli eszközt egy Azure IoT Edge-átjáróra.

X.509-eszköztanúsítványok rollolása

Az IoT Central-alkalmazás életciklusa során előfordulhat, hogy az X.509-tanúsítványokat be kell állítania. Példa:

  • Ha biztonsági incidenst észlel, a gördülő tanúsítványok ajánlott biztonsági eljárások a rendszer biztonságossá tételéhez.
  • Az X.509-tanúsítványok lejárati dátumokkal rendelkeznek. A tanúsítványok gördítésének gyakorisága a megoldás biztonsági igényeitől függ. A rendkívül bizalmas adatokat tartalmazó megoldásokkal rendelkező ügyfelek naponta hozhatnak tanúsítványokat, míg mások néhány évente összesíthetik tanúsítványaikat.

A zavartalan kapcsolat érdekében az IoT Central lehetővé teszi az elsődleges és másodlagos X.509-tanúsítványok konfigurálását. Ha az elsődleges és másodlagos tanúsítványok különböző lejárati dátumokkal rendelkeznek, a lejárt tanúsítványt úgy állíthatja be, hogy az eszközök továbbra is csatlakoznak a másik tanúsítványhoz.

További információ: A szabálysértés feltételezésének módszertana.

Ez a szakasz azt ismerteti, hogyan lehet a tanúsítványokat az IoT Centralban összesíteni. Amikor az IoT Centralban gördít tanúsítványt, az új eszköztanúsítványt is át kell másolnia az eszközeire.

Új X.509-tanúsítványok beszerzése

Szerezze be az új X.509-tanúsítványokat a tanúsítványszolgáltatótól. Létrehozhat saját X.509-tanúsítványokat egy olyan eszközzel, mint az OpenSSL. Ez a módszer az X.509-tanúsítványok teszteléséhez hasznos, de kevés biztonsági garanciát nyújt. Ezt a módszert csak akkor használja tesztelésre, ha nem áll készen arra, hogy saját hitelesítésszolgáltatóként működjön.

Regisztrációs csoportok és biztonsági incidensek

Ha biztonsági incidensre reagálva szeretne frissíteni egy csoportregisztrációt, az alábbi módszerrel azonnal frissítheti az aktuális tanúsítványt. Ha mindkettő sérült, hajtsa végre az alábbi lépéseket az elsődleges és a másodlagos tanúsítványok esetében:

  1. Navigáljon az Engedélyek elemre a bal oldali panelen, és válassza az Eszközkapcsolati csoportok lehetőséget.

  2. Válassza ki a csoport nevét a Regisztrációs csoportok csoportban található listában.

  3. A tanúsítványfrissítéshez válassza az Elsődleges vagy a Másodlagos kezelés kezelése lehetőséget.

  4. Adja hozzá és ellenőrizze a legfelső szintű X.509-tanúsítványt a regisztrációs csoportban.

Egyéni regisztrációk és biztonsági incidensek

Ha biztonsági incidens miatt gördít tanúsítványokat, az alábbi módszerrel azonnal frissítheti az aktuális tanúsítványt. Ha mindkettő sérült, hajtsa végre az alábbi lépéseket az elsődleges és a másodlagos tanúsítványok esetében:

  1. Válassza az Eszközök lehetőséget, és válassza ki az eszközt.

  2. Válassza ki a Csatlakozás, majd válassza a connect metódust egyéni regisztrációként

  3. Válassza a Tanúsítványok (X.509) lehetőséget mechanizmusként.

  4. A tanúsítványfrissítéshez válassza a mappaikont a regisztrációs bejegyzéshez feltöltendő új tanúsítvány kiválasztásához. Válassza a Mentés lehetőséget.

Regisztrációs csoportok és tanúsítvány lejárata

A tanúsítványok lejáratának kezeléséhez használja az alábbi módszert az aktuális tanúsítvány azonnali frissítésére:

  1. Navigáljon az Engedélyek elemre a bal oldali panelen, és válassza az Eszközkapcsolati csoportok lehetőséget.

  2. Válassza ki a csoport nevét a Regisztrációs csoportok csoportban található listában.

  3. A tanúsítványfrissítéshez válassza az Elsődleges kezelés lehetőséget.

  4. Adja hozzá és ellenőrizze a legfelső szintű X.509-tanúsítványt a regisztrációs csoportban.

  5. Később, amikor a másodlagos tanúsítvány lejár, térjen vissza, és frissítse a másodlagos tanúsítványt.

Egyéni regisztrációk és tanúsítványok lejárata

Ha tanúsítványokat futtat a tanúsítványok lejáratának kezelésére, a következő másodlagos tanúsítványkonfigurációt kell használnia az alkalmazásban kiépíteni próbáló eszközök állásidejének csökkentése érdekében.

Amikor a másodlagos tanúsítvány lejárata közeledik, és hengerelni kell, elforgathatja az elsődleges konfigurációt. Az elsődleges és a másodlagos tanúsítványok közötti váltás így csökkenti az alkalmazáson belül kiépíteni kívánt eszközök állásidejét.

  1. Válassza az Eszközök lehetőséget, és válassza ki az eszközt.

  2. Válassza ki a Csatlakozás, majd válassza a connect metódust egyéni regisztrációként

  3. Válassza a Tanúsítványok (X.509) lehetőséget mechanizmusként.

  4. Másodlagos tanúsítványfrissítéshez válassza a mappaikont a regisztrációs bejegyzéshez feltöltendő új tanúsítvány kiválasztásához. Válassza a Mentés lehetőséget.

  5. Később, amikor az elsődleges tanúsítvány lejárt, térjen vissza, és frissítse az elsődleges tanúsítványt.