Szenario: Erstellen einer digitalen Zwillingsinstanz, die ein mTLS-Zertifikat verwendet
Wenn Sie Daten von einem Gerät erhalten, müssen Sie die Authentifizierung mit Ihrer digitalen Zwillingsinstanz verwenden. In diesem Szenario wird erläutert, wie Sie ein Zertifikat zur Authentifizierung einer digitalen Zwillingsinstanz für ein Gerät verwenden.
- Schlüssel erstellen
- Certificate Authoritys erstellen
- Neuen Private Key generieren
- Zertifikat erstellen, das extern verwaltet wird
- Erstellen Sie eine digitale Zwillingsinstanz, die ein Zertifikat verwendet
- Instanzdetails eines digitalen Zwillings abrufen
- Abonnieren Sie ein Thema unter MQTTx
- Gerätedaten in APEX anzeigen
- Zertifikate häufig rotieren
- Gültigkeitszeiträume für Bescheinigungen begrenzen
- Speichern Sie Private Keys mit Vaults.
- Verbindungsversuche überwachen und prüfen.
Bevor Sie beginnen
Stellen Sie sicher, dass Sie über die erforderlichen Berechtigungen verfügen. Ein Administrator erteilt Zugriff, indem er die erforderlichen Policys erstellt. Weitere Informationen finden Sie unter Voraussetzungen für die für Zertifikate erforderlichen Policys und unter Policy-Details für die Internet of Things-(IoT-)Plattform für Policys, die für IoT-Ressourcen erforderlich sind.
Wenn Sie eine digitale Zwillingsinstanz erstellen, wenn Sie ein Zertifikat zur Authentifizierung verwenden, benötigen Sie die folgende Policy, damit die IoT-Domain das Zertifikat lesen kann.
Allow any-user to {CERTIFICATE_BUNDLE_READ, CERTIFICATE_READ} in compartment <compartment-name> where request.principal.type = 'iotdomain'
Allow any-user to {CERTIFICATE_AUTHORITY_BUNDLE_READ, CERTIFICATE_AUTHORITY_READ} in compartment <compartment-name> where request.principal.type = 'iotdomain'
Allow any-user to {CABUNDLE_READ} in compartment <compartment-name> where request.principal.type = 'iotdomain'Schritt 1: Schlüssel erstellen
In Oracle Cloud Infrastructure (OCI) muss ein hardwaregeschützter, symmetrischer Verschlüsselungsschlüssel vorhanden sein. So prüfen Sie, ob Sie einen Masterverschlüsselungsschlüssel haben oder einen neuen erstellen:
- Gehen Sie zu Identität und Sicherheit, und wählen Sie Vault aus.
- Wählen Sie das Compartment aus, das Sie für Ihre IoT-Ressourcen verwenden möchten.
- Um einen Schlüssel zu erstellen, wählen Sie Schlüssel erstellen aus, und befolgen Sie die Anweisungen unter Masterverschlüsselungsschlüssel erstellen.
- Sie können auch in der Liste der Vaults das Menü Aktionen neben dem Vault auswählen, den Sie verwenden möchten, und dann Vault-Details anzeigen auswählen.
- Wählen Sie Masterverschlüsselungsschlüssel aus, um Schlüssel anzuzeigen. Wählen Sie Schlüsseldetails anzeigen aus, um den Schutzmodus zu suchen, und bestätigen Sie, dass es sich um HSM (Hardwaresicherheitsmodul) handelt.
Schritt 2: Certificate Authority erstellen
Verwenden Sie den Certificates-Service, um eine Root Certificate Authority (CA) oder eine untergeordnete CA zu erstellen. Weitere Informationen finden Sie unter Certificate Authority erstellen.
In dieser Beispielaufgabe wird erläutert, wie Sie ein Zertifikat mit einem Private Key ausstellen, den Sie extern mit einer untergeordneten CA verwalten.
Um eine untergeordnete CA zu erstellen, benötigen Sie bereits eine Root-CA.
- Melden Sie sich als ein Administrator mit den richtigen Policys an, um diese Aktionen auszuführen. Sie benötigen die entsprechende Sicherheitszugriffsebene, um eine CA zu erstellen.
- Wählen Sie auf der Listenseite Certificate Authoritys die Option Certificate Authority erstellen aus. Wenn Sie Hilfe beim Suchen der Listenseite benötigen, lesen Sie Certificate Authoritys auflisten.
- Wählen Sie Compartment und dann das Compartment, in dem Sie die CA erstellen möchten, aus.
- Wählen Sie unter Certificate Authority-Typ den Typ Untergeordnete Certificate Authority aus: jede CA, die nicht die Root-CA in einer Hierarchie mit anderen CAs ist.
- (Optional) Geben Sie einen eindeutigen Anzeigenamen für die CA ein. Mit diesem Namen können Sie die CA für administrative Zwecke identifizieren, werden jedoch nicht als Teil des CA-Zertifikats angezeigt. Geben Sie dabei keine vertraulichen Informationen ein.Hinweis
Keine zwei CAs in einem Mandanten können denselben Namen verwenden, einschließlich CAs, deren Löschung aussteht. - (Optional) Um Tags anzuwenden, wählen Sie Taggingoptionen anzeigen aus. Weitere Informationen zu Tags finden Sie unter Ressourcentags.
- Wählen Sie Weiter.
- Geben Sie Themeninformationen ein. Zu die Subject-Informationen gehört mindestens ein allgemeiner Name zur Identifizierung des Eigentümers des CA-Zertifikats. Je nach beabsichtigter Verwendung des Zertifikats kann das Subject eine Person, eine Organisation, einen Computerendpunkt oder ein Gerät identifizieren. Das Format der Subject-Informationen muss den RFC 5280-Standards entsprechen. Sie können Platzhalter verwenden, um ein Zertifikat für mehrere Domain- oder Subdomainnamen auszustellen.
- Wählen Sie Weiter.
- Bestätigen Sie unter Autoritätskonfiguration den Vault mit dem Verschlüsselungsschlüssel, den Sie für das CA-Zertifikat verwenden möchten, oder wählen Sie ihn aus. Wählen Sie optional Compartment ändern aus, um ein anderes Compartment anzugeben. Informationen zum Erstellen und Verwalten von Vaults finden Sie unter Vaults verwalten.
- Wählen Sie unter "Schlüssel" den Schlüssel im Vault, den Sie verwenden möchten. Die Liste enthält nur asymmetrische Schlüssel im Vault, weil Certificates nur asymmetrische Schlüssel unterstützt. Sie können aus Rivest-Shamir-Adleman (RSA)-Tasten wählen, die 2.048 Bit oder 4.096 Bit umfassen. Sie können auch Elliptic Curve Cryptography Digital Signature Algorithm-(ECDSA-)Schlüssel mit der ID der elliptischen Kurve NIST_P384 auswählen. Insbesondere enthält die Liste nur asymmetrische Schlüssel, die durch ein Hardwaresicherheitsmodul (HSM) geschützt sind. Zertifikate unterstützen nicht die Verwendung von softwaregeschützten Schlüsseln. Weitere Informationen zum Erstellen und Verwalten von Schlüsseln finden Sie unter Schlüssel verwalten.
- Wählen Sie unter Signaturalgorithmus je nach Schlüsselalgorithmusfamilie eine der folgenden Optionen aus:
- SHA256_WITH_RSA: RSA-Schlüssel mit SHA-256-Hashfunktion
- SHA384_WITH_RSA: RSA-Schlüssel mit SHA-384-Hashfunktion
- SHA512_WITH_RSA: RSA-Schlüssel mit SHA-512-Hashfunktion
- SHA256_WITH_ECDSA: ECDSA-Schlüssel mit SHA-256-Hashfunktion
- SHA384_WITH_ECDSA: ECDSA-Schlüssel mit SHA-384-Hashfunktion
- SHA512_WITH_ECDSA: ECDSA-Schlüssel mit SHA-512-Hashfunktion
- Wählen Sie Weiter.
- Konfigurieren Sie die Ablaufregel Geben Sie unter Maximale Gültigkeitsdauer für Zertifikate (Tage) an, wie viele Tage ein von dieser CA ausgestelltes Zertifikat gültig sein kann. Ein Gültigkeitszeitraum von maximal 90 Tagen wird dringend empfohlen.
- Wenn Sie keine Zertifikatswiderrufliste (CRL) konfigurieren möchten, aktivieren Sie auf die Seite Widerrufkonfiguration das Kontrollkästchen "Widerruf überspringen".
- Wählen Sie Weiter.
- Vergewissern Sie sich, dass die Informationen korrekt sind, und wählen Sie "Certificate Authority erstellen" aus. Das Erstellen von zertifikatsbezogenen Ressourcen kann einige Minuten dauern.
- Wenn die Certificate Authority erfolgreich erstellt wurde, werden die Übersichtsdetails angezeigt.
Schritt 3: Neuen Private Key generieren
Erstellen Sie einen Private Key und eine Zertifikatssignieranforderung (Certificate Signing Request, CSR) mit OpenSSL.
Aus Sicherheitsgründen sollten Sie diesen Schritt auf dem Gerät ausführen, um den Schlüssel privat zu halten und den Schlüssel niemals extern freizugeben.
- Mit diesem Befehl können Sie einen neuen Private Key
private.pemund eine Zertifikatssignieranforderungcsr.pemmit RSA-2048-Bit-Verschlüsselung generieren. In diesem Beispiel wird der Parameter-nodesverwendet, der ohne Kennwortschutz angegeben wird und die Erweiterungenv3_reqverwendet.openssl req -nodes -newkey rsa:2048 -keyout private.pem -out csr.pem -extensions v3_reqHinweis
Wenn Sie Linux verwenden, kommentiert die DateiOpenSSL.cnfstandardmäßig die Erweiterung aus, z.B. wenn in der KonfigurationsdateiOpenSSLFolgendes angezeigt wird:/etc/pki/tls/openssl.cnf
Entfernen Sie dann die# req_extensions = v3_req# The extensions to add to a certificate request#, um die Kommentarzeichen für die Erweiterungen aufzuheben, sodass die Datei ungefähr wie folgt aussieht:req_extensions = v3_req # The extensions to add to a certificate requestUm zu prüfen, obOpenSSLextensions v3_reqverwendet, können Sie prüfen, ob die Ausgabe Folgendes enthält:X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE Dieses Beispiel zeigt die Eingabefelder und Beispielwerte für die Zertifikatanforderung. Geben Sie Informationen ein, die in Ihren Zertifikatsbericht als Distinguished Name (DN) aufgenommen werden.
Geben Sie den allgemeinen Namen ein. Sie finden den allgemeinen Namen auf der Registerkarte "Themeninformationen" der Seite mit den Zertifikatsdetails. Weitere Informationen finden Sie unter Certificate Authority erstellen in Schritt 8 oder unter Zertifikate auflisten.Country Name (2 letter code) []: US State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) []: Organizational Unit Name (eg, section) []: Common Name (Enter common name from the certificate details.) []:common-name Email Address [your@email.com]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Schritt 4: Extern verwaltetes Zertifikat erstellen
Sie können einen Certificate Signing Request (CSR) und Private Key auf dem Server generieren, auf dem Sie das Zertifikat installieren möchten. Dann können sie diesen CSR an eine CA weiterleiten, um ein Zertifikat auszustellen, während sie den Private Key extern verwalten.
- Rufen Sie in der Konsole das Navigationsmenü auf, und wählen Sie Identität und Sicherheit aus.
- Auf der Listenseite Zertifikate wird die Liste der Certificate Authority für ein bestimmtes Compartment angezeigt.
- Suchen Sie das Zertifikat, mit dem Sie arbeiten möchten, und wählen Sie das Menü "Aktionen" am Ende der Zeile aus.
- Wählen Sie Zertifikat ausstellen aus.
- Wählen Sie unter Zertifikatstyp die Option Von interner CA ausgestellt, extern verwaltet aus, um ein Zertifikat einer CA des Certificates-Service auszustellen, die von einer externen Drittanbieter-CA verwaltet ist.
- Geben Sie einen eindeutigen Anzeigenamen für das Zertifikat ein. Geben Sie dabei keine vertraulichen Informationen ein.Hinweis
Keine zwei Zertifikate im Mandanten können denselben Namen verwenden, einschließlich Zertifikaten, deren Löschung aussteht. - (Optional) Geben Sie eine Beschreibung ein, mit der Sie das Zertifikat identifizieren können. Geben Sie dabei keine vertraulichen Informationen ein.
- Für Zertifikate, die von einer Drittanbieter-CA verwaltet werden, müssen Sie keine Themeninformationen angeben. Wählen Sie stattdessen Next (Weiter).
- Geben Sie unter "Zertifikat-Signaturanforderung" den Zertifikatsinhalt an, indem Sie Datei hochladen auswählen und dann Eine auswählen auswählen, um das Zertifikat als Datei im
PEM-Format hochzulegen. - Sie können auch Inhalt einfügen auswählen und dann das Textfeld auswählen, um den Zertifikatsinhalt direkt einzufügen.
- Wählen Sie Weiter.
- Sie können die automatische Erneuerung für Zertifikate nicht konfigurieren, die vom Certificates-Service nicht verwaltet werden. Wählen Sie Weiter, um fortzufahren.
- Prüfen Sie, ob die Zusammenfassungsinformationen korrekt sind, und wählen Sie Zertifikat erstellen aus.
- Die Seite Zertifikatsdetails wird geöffnet. Suchen Sie unter Versionen den Namen des Zertifikats, das Sie anzeigen möchten. Wechseln Sie zum Menü Aktionen am Ende der Zeile, und wählen Sie Inhalt anzeigen aus. Weitere Informationen finden Sie unter Zertifikatsdetails anzeigen.
- Wählen Sie Herunterladen aus, und Speichern Sie die Datei Zertifikat-PEM.
- Gehen Sie auf der Seite mit den Zertifikatsdetails zur Registerkarte Themeninformationen, und kopieren Sie den allgemeinen Namen für das Zertifikat, das im nächsten Schritt verwendet werden soll.
Schritt 5: Digitale Zwillingsinstanz erstellen, die ein Zertifikat verwendet
Um ein Gerät zu authentifizieren, um Daten zu senden, können Sie mit dem Parameter --auth-id und dem im vorherigen Schritt erstellten <certificate-OCID> eine digitale Zwillingsinstanz erstellen.
Verwenden Sie diesen Befehl und diese Parameter, um eine digitale Zwillingsinstanz zu erstellen. Ersetzen Sie <common-name-for-the-certificate>. Ersetzen Sie <certificate-OCID> durch die Zertifikats-OCID für Ihre Umgebung. Suchen Sie diese Werte in den Zertifikatsdetails. Weitere Informationen finden Sie unter Zertifikatsdetails anzeigen:
oci iot digital-twin-instance create --iot-domain-id <iot-domain-OCID> --auth-id <certificate-OCID> --external-key <common-name-from-certificate-details>
Eine vollständige Liste der CLI-Parameter finden Sie unter oci iot digital-twin-instance create. Weitere Informationen finden Sie unter Digital Twin Instance erstellen.
Optionaler Schritt 6: Instanzdetails eines digitalen Zwillings abrufen
oci iot digital-twin-instance get --digital-twin-instance-id <digital-twin-instance-OCID>Schritt 7: Daten senden
Je nach Szenario können Sie mit MQTTS, HTTPS oder WebSocket eine Verbindung zur digitalen Zwillingsinstanz herstellen. Weitere Beispielszenarios finden Sie unter Verbinden eines Geräts.
Curl verwenden
Shells im POSIX-Stil: Verwenden Sie diesencurl-Befehl, wenn Sie bash, zsh, macOS-Terminal, Linux oder Git Bash unter Windows verwenden, um eine Beispieltextnachricht zum Testen der Verbindung zu senden. Ersetzen Siedevice-cert.pemunddevice-key.pemdurch den Pfad zu den Dateien für Ihre Umgebung.curl --cert /path/device-cert.pem --key /path/device-key.pem \ -H "Content-Type: text/plain" \ -d "sample data 1" \ "https://<iot-domain-short-id>.device.iot.<region>.oci.oraclecloud.com/sampletopic"Windows Powershell: Verwenden Sie diesen Befehl
curl, und ersetzen Siedevice-cert.pemunddevice-key.pemdurch die Werte für Ihre Umgebung.curl.exe --cert /path/device-cert.pem --key /path/device-key.pem \ -H "Content-Type: text/plain" \ -d "sample data 1" \ "https://<iot-domain-short-id>.device.iot.<region>.oci.oraclecloud.com/sampletopic"Wenn Sie Schritt 3: Digitale Zwillingsinstanz erstellen abgeschlossen haben und den Parameterwert des externen Schlüssels mit Anführungszeichen definiert haben, müssen Sie die Anführungszeichen beim Senden der Daten angeben:
"external-key". Best Practices für die Angebotserstellung finden Sie unter Fehlerbehebung.Verwenden Sie einen beliebigen MQTT-Client, um ein Thema mit MQTTS zu abonnieren. In diesem Beispiel wird MQTTx verwendet.
So senden Sie Beispieldaten und testen die Verbindung:
- Geben Sie den Gerätehost als Host ein. Beispiel:
mqtts://<domain-short-id>.device.iot.<region>.oci.oraclecloud.com - Geben Sie den Port an:
8883 - Client-Kennung: your-client-ID
- Reinigungsstart: True
- Aktivieren Sie den Umschalter, um TLS zu aktivieren.
- Wählen Sie die Option CA- oder selbstsignierte Zertifikate aus.
- Geben Sie den Speicherort der Clientzertifikatsdatei aus Schritt 15 unter Extern verwaltetes Zertifikat erstellen ein:
your-certificate.pem - Geben Sie den Speicherort der Clientschlüsseldatei aus Schritt 1 unter Neuen Private Key generieren ein:
your-private-key.pem - Wählen Sie Verbinden aus.


- Wählen Sie Neues Abonnement aus, um Daten von einem Gerät zu empfangen.
- Geben Sie den Endpunkt als Thema ein.
- Dieses Beispiel zeigt Nachrichten, die im Thema
/endpoints/4321auf Quality of Service (QoS) Ebene 1 veröffentlicht wurden. Thema:{ "pulse": 300, "s02": 400 }{ "test": 100 }
- Geben Sie den Gerätehost als Host ein. Beispiel:
Optionaler Schritt 7: IoT-Daten in APEX überwachen
select * from <domain-short-id-from-device-host>__IOT.RAW_DATA
where digital_twin_instance_id = '<digital-twin-instance-ocid>'