Eine Übersicht der API-Funktionen finden Sie unter Cert Provisioning API.
Für alle Anfragen auf dieser Seite werden die folgenden Variablen verwendet:
$TOKEN
– OAuth2-Token oder selbstsigniertes JWT$CUSTOMER
– ID des Kunden oder Literalmy_customer
$CERT_PROVISIONING_PROCESS
– ID des Zertifikatbereitstellungsprozesses, die in der ersten Pub/Sub-Nachricht an den Zertifikatbereitstellungsadapter gesendet wurde$OPERATION
: ID des Vorgangs mit langer Ausführungszeit
Prozess zur Zertifikatbereitstellung
Ruft eine CertificateProvisioningProcess-Ressource ab. Je nach Status des Prozesses zur Bereitstellung von Zertifikaten sind nicht alle Felder der CertificateProvisioningProcess
-Ressource in der Antwort ausgefüllt.
Anfrage
curl -H "Authorization: Bearer $TOKEN" \
https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS
Antwort
Die folgende Antwort wird generiert, bevor der Client aufgefordert wird, Daten zu signieren.
{
"name": "customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS",
"provisioningProfileId": "43b413f9-5ecd-4bf6-b431-f2df56ce852e",
"subjectPublicKeyInfo": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqtbosvGe1JzJJYBPsPzFY33xD9fSJhQLZh21ELD2vEZ5OSzxXzQOhlXZ2Mv4C3m4zn8mjuYykprBxaMggryd8kyhycm2DDsL2/KUkdQNPnv6mBQ8iionF84iabh+FWph1CU63j2vCPnw0VYSv7cz+bHsxs3tXFB7PqqQZr7WcWAAxFaIqoTkJrTGMzDFs8GHUA6mFhMj0WsPzp3aicj24uW0AAJjVFmiZ+pz1lOOL4coNsVrujrX2E6lU8AHjmoQT6ThRVnuo1jFXoASB4A1It6dtu/P8L3zhsVWYRtOZjLLVvGryzT8z0A8iW5k+apkb465jgLd2vuxFPekAgPRDwIDAQAB",
"chromeOsDevice": {
"deviceDirectoryApiId": "abcdefgh-ijkl-mnop-qrst-uvwxyz0123456",
"serialNumber": "0123456789"
},
"startTime": "2025-03-07T13:38:54.930621Z",
"genericCaConnection": {
"caConnectionAdapterConfigReference": "default_ca_config"
},
"genericProfile": {
"profileAdapterConfigReference": "device_profile"
}
}
Anspruch auf einen Prozess zur Zertifikatbereitstellung erheben
Ein Zertifikatsbereitstellungsadapter beansprucht einen Zertifikatsbereitstellungsprozess. Wenn mehrere Adapterinstanzen parallel ausgeführt werden, wird der Prozess der Zertifizierungsbereitstellung von derselben Adapterinstanz verarbeitet. Dieser Schritt ist auch erforderlich, wenn es nur eine einzige Adapterinstanz gibt.
Anfrage
curl -H "Authorization: Bearer $TOKEN" \
--json '{"callerInstanceId": "adapter_instance_1"}' \
https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS:claim
Antwort
Wenn der Prozess zur Bereitstellung des Zertifikats noch nicht in Anspruch genommen wurde, wird eine leere Antwort zurückgegeben.
{}
Wenn der Zertifikatsbereitstellungsprozess bereits von einer anderen Adapterinstanz beansprucht wurde, schlägt die claim
-Anfrage mit dem Fehler 400 (Bad Request) fehl.
Unterschrift für den Besitznachweis anfordern
Bitten Sie den Client, der ein Zertifikat anfordert, einige Daten mit dem angegebenen SignatureAlgorithm und dem privaten Schlüssel zu signieren, der dem öffentlichen Schlüssel im Zertifikatbereitstellungsprozess entspricht. $DATA_TO_SIGN
steht für die Base64-codierten Daten, die vom Client signiert werden sollen.
Anfrage
curl -H "Authorization: Bearer $TOKEN" \
--json '{"signData": "$DATA_TO_SIGN","signatureAlgorithm":"SIGNATURE_ALGORITHM_RSA_PKCS1_V1_5_SHA256"}'\
https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS:signData
Antwort
Die Antwort enthält einen Vorgang, dessen Metadatenfeld mit einer SignDataMetadata-Protonachricht ausgefüllt ist.
{
"name": "customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS/operations/$OPERATION",
"metadata": {
"@type": "type.googleapis.com/google.chrome.management.versions.v1.SignDataMetadata",
"startTime": "2025-03-07T14:44:06.156385Z"
}
}
Vorgang mit langer Ausführungszeit abrufen
Ruft den letzten Status eines lang andauernden Vorgangs ab, der von der SignData
-Anfrage zurückgegeben wurde.
Anfrage
curl -H "Authorization: Bearer $TOKEN" \
https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS/operations/$OPERATION
Antwort
Das Feld metadata
eines Vorgangs wird mit einer SignDataMetadata-Protonachricht ausgefüllt. Falls vorhanden, wird die response
eines Vorgangs mit einer SignDataResponse-Protonachricht ausgefüllt.
Wenn der Vorgang mit langer Ausführungszeit noch läuft:
{
"name": "customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS/operations/$OPERATION",
"metadata": {
"@type": "type.googleapis.com/google.chrome.management.versions.v1.SignDataMetadata",
"startTime": "2025-03-07T14:44:06.156385Z"
}
}
Wenn der lang andauernde Vorgang erfolgreich abgeschlossen wurde:
{
"name": "customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS/operations/$OPERATION",
"metadata": {
"@type": "type.googleapis.com/google.chrome.management.versions.v1.SignDataMetadata",
"startTime": "2025-03-07T14:44:06.156385Z"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.chrome.management.versions.v1.SignDataResponse",
"certificateProvisioningProcess": {
"name": "customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS",
"provisioningProfileId": "43b413f9-5ecd-4bf6-b431-f2df56ce852e",
"subjectPublicKeyInfo": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqtbosvGe1JzJJYBPsPzFY33xD9fSJhQLZh21ELD2vEZ5OSzxXzQOhlXZ2Mv4C3m4zn8mjuYykprBxaMggryd8kyhycm2DDsL2/KUkdQNPnv6mBQ8iionF84iabh+FWph1CU63j2vCPnw0VYSv7cz+bHsxs3tXFB7PqqQZr7WcWAAxFaIqoTkJrTGMzDFs8GHUA6mFhMj0WsPzp3aicj24uW0AAJjVFmiZ+pz1lOOL4coNsVrujrX2E6lU8AHjmoQT6ThRVnuo1jFXoASB4A1It6dtu/P8L3zhsVWYRtOZjLLVvGryzT8z0A8iW5k+apkb465jgLd2vuxFPekAgPRDwIDAQAB",
"chromeOsDevice": {
"deviceDirectoryApiId": "abcdefgh-ijkl-mnop-qrst-uvwxyz0123456",
"serialNumber": "0123456789"
},
"startTime": "2025-03-07T13:38:54.930621Z",
"signData": "ZGF0YSB0byBzaWduCg==",
"signatureAlgorithm": "SIGNATURE_ALGORITHM_RSA_PKCS1_V1_5_SHA256",
"signature": "mPfL8v/DR+ZqbtJ6X5cJCTrzfOO3wPHCY8nV/stbokdNZnkRJ8U0PBzgm6pWy08pMmOfrs9ZMBXcQ0i05Oe6AwgHYYN5RHuwdnhAklJYriDT4fXdzewD6KuA6x7ZX1d2xYnh0p2XczcdNOJsrz2T/p+89PLcB6I1PIg1Cwz4I1YCAS2OMAQF5DxS+SvMpPbkdzkNG4SCCL/hJNayxRMr98SbQ0aQE77AtxzpXGof5cBEBOcbQ+T+kBIgArQ87D6bQVHVB3di+TvYepK6hwxiLbhCEDGHgi2DfMp8kEWnAVPVzi6xht5jPNhVqILALRbQQ1nUjlP8UO+/y+WR4M36Yg==",
"genericCaConnection": {
"caConnectionAdapterConfigReference": "default_ca_config"
},
"genericProfile": {
"profileAdapterConfigReference": "device_profile"
}
}
}
}
Wenn der lang andauernde Vorgang fehlgeschlagen ist:
{
"name": "customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS/operations/$OPERATION",
"metadata": {
"@type": "type.googleapis.com/google.chrome.management.versions.v1.SignDataMetadata",
"startTime": "2025-03-07T14:44:06.156385Z"
},
"done": true,
"error": {
"code": 3,
"message": "The requested SignData LRO failed because the corresponding certificate provisioning process is in failure state CERTIFICATE_PROVISIONING_RESULT_ERROR_INVALID_SIGNATURE with the following error message: The proof of possession signature is invalid. [operationId=$OPERATION, cppId=$CERT_PROVISIONING_PROCESS, customerId=$CUSTOMER]"
}
}
Zertifikat hochladen
Laden Sie das X.509-Zertifikat im PEM-Format hoch. In der Beispielanfrage wird das PEM-codierte Zertifikat durch die Variable $CERTIFICATE_IN_PEM_FORMAT
dargestellt.
Anfrage
curl -H "Authorization: Bearer $TOKEN" \
--json '{"certificatePem": "$CERTIFICATE_IN_PEM_FORMAT"}' \
https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS:uploadCertificate
Antwort
{}
Fehler bei der Zertifikatbereitstellung melden
Markieren Sie einen Zertifikatsbereitstellungsprozess als fehlgeschlagen und legen Sie eine entsprechende Fehlermeldung fest. Die Fehlermeldung wird an den ChromeOS-Client weitergegeben, der den Prozess zur Zertifikatbereitstellung gestartet hat.
Anfrage
curl -H "Authorization: Bearer $TOKEN" \
--json '{"errorMessage": "The CA could not issue the certificate."}' \
https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS:setFailure
Antwort
{}