Sertifika oluşturmayı izleme ve yönetme

Uygulama hedefi: Azure

Bu makalede özetlenen senaryolar/işlemler şunlardır:

  • Desteklenen bir veren ile KV sertifikası isteme
  • Bekleyen isteği Al-istek durumu "sürüyor"
  • Bekleyen isteği Al-istek durumu "tam"
  • Bekleyen isteği al-bekleyen istek durumu "iptal edildi" veya "başarısız"
  • Bekleyen isteği al-bekleyen istek durumu "silindi" veya "üzerine yazıldı"
  • Bekleyen istek var olduğunda oluştur (veya Içeri aktar)-durum "sürüyor" dır
  • İstek veren (DigiCert) ile bekleyen istek oluşturulduğunda Birleştir
  • Bekleyen istek durumu "sürüyor" iken bir iptal iste
  • Bekleyen bir istek nesnesini Sil
  • Bir KV sertifikasını el ile oluşturma
  • Bekleyen bir istek oluşturulduğunda Birleştir-el ile sertifika oluşturma

Desteklenen bir veren ile KV sertifikası isteme

Yöntem İstek URI'si
POST https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version}

Aşağıdaki örneklerde, "mydigicert" adlı bir nesne, zaten bir örnek kasasında, bir sertifika veren sağlayıcısı ile DigiCert olarak kullanılabilir. Sertifika veren, bir Certificateıssuer kaynağı olarak Azure Key Vault (KV) ile temsil edilen bir varlıktır. Bir KV sertifikasının kaynağı hakkında bilgi sağlamak için kullanılır; verenin adı, sağlayıcı, kimlik bilgileri ve diğer yönetim ayrıntıları.

İstek

{
  "policy": {
    "x509_props": {
      "subject": "CN=MyCertSubject1"
    },
    "issuer": {
      "name": "mydigicert",
      "cty": "OV-SSL",
    }
  }
}

Yanıt

StatusCode: 202, ReasonPhrase: 'Accepted'
Location: “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
{
  "id": “https://mykeyvault.vault.azure.net/certificates/mycert1/pending",
  "issuer": {
    "name": "mydigicert"
  },
  "csr": "MIICq......DD5Lp5cqXg==",
  "cancellation_requested": false,
  "status": "InProgress",
  "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later",
  "request_id": "a76827a18b63421c917da80f28e9913d"
}

Bekleyen isteği Al-istek durumu "sürüyor"

Yöntem İstek URI'si
GET https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

İstek

Al “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"

VEYA

Al “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"

Not

Sorguda request_id belirtilirse, bir filtre gibi davranır. Sorgudaki ve bekleyen nesnedeki request_id farklıysa, 404 HTTP durum kodu döndürülür.

Yanıt

StatusCode: 200, ReasonPhrase: 'OK'
{
  "id": “https://mykeyvault.vault.azure.net/certificates/mycert1/pending",
  "issuer": {
    "name": "{issuer-name}"
  },
  "csr": "MIICq......DD5Lp5cqXg==",
  "cancellation_requested": false,
  "status": "inProgress",
  "status_details": "…",
  "request_id": "a76827a18b63421c917da80f28e9913d"
}

Bekleyen isteği Al-istek durumu "tam"

İstek

Yöntem İstek URI'si
GET https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

Al “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"

VEYA

Al “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"

Yanıt

StatusCode: 200, ReasonPhrase: 'OK'
{
  "id": “https://mykeyvault.vault.azure.net/certificates/mycert1/pending",
  "issuer": {
    "name": "{issuer-name}"
  },
  "csr": "MIICq......DD5Lp5cqXg==",
  "cancellation_requested": false,
  "status": "completed",
  "request_id": "a76827a18b63421c917da80f28e9913d",
  "target": “https://mykeyvault.vault.azure.net/certificates/mycert1?api-version={api-version}"
}

Bekleyen isteği al-bekleyen istek durumu "iptal edildi" veya "başarısız"

İstek

Yöntem İstek URI'si
GET https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

Al “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"

VEYA

Al “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"

Yanıt

StatusCode: 200, ReasonPhrase: 'OK'
{
  "id": “https://mykeyvault.vault.azure.net/certificates/mycert1/pending",
  "issuer": {
    "name": "{issuer-name}"
  },
  "csr": "MIICq......DD5Lp5cqXg==",
  "cancellation_requested": false,
  "status": "failed",
  "status_details": "",
  "request_id": "a76827a18b63421c917da80f28e9913d",
  "error": {
    "code": "<errorcode>",
    "message": "<message>"
  }
}

Not

Hata kodu değeri, "sertifika veren hatası" veya "istek reddedildi" veya sırasıyla Kullanıcı hatası temelinde olabilir.

Bekleyen isteği al-bekleyen istek durumu "silindi" veya "üzerine yazıldı"

Bekleyen bir nesne, durumu "sürüyor" olmadığında bir oluşturma/içeri aktarma işlemi tarafından silinebilir veya üzerine yazılabilir.

Yöntem İstek URI'si
GET https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

İstek

Al “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"

VEYA

Al “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"

Yanıt

StatusCode: 404, ReasonPhrase: 'Not Found'
{
  "error": {
    "code": "PendingCertificateNotFound",
    "message": "…"
  }
}

Bekleyen istek var olduğunda oluştur (veya Içeri aktar)-durum "sürüyor" dır

Bekleyen bir nesne dört olası duruma sahiptir; "sürüyor", "iptal edildi", "başarısız" veya "tamamlandı".

Bekleyen bir isteğin durumu "sürüyor" olduğunda, oluşturma (ve içeri aktarma) işlemleri http durum kodu 409 (çakışma) ile başarısız olur.

Bir çakışmayı onarmak için:

  • Sertifika el ile oluşturulduysa, bekleyen nesnede bir birleştirme veya silme yaparak KV sertifikasını tamamlayabilirsiniz.

  • Sertifika bir veren ile oluşturulduysa, sertifika tamamlanana kadar bekleyebilir, başarısız olur veya iptal edilebilir. Alternatif olarak, bekleyen nesneyi silebilirsiniz.

Not

Bekleyen bir nesnenin silinmesi, sağlayıcıya yönelik x509 sertifika isteğini iptal edebilir veya iptal edemeyebilir.

Yöntem İstek URI'si
POST https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version}

İstek

{
  "policy": {
    "x509_props": {
      "subject": "CN=MyCertSubject1"
    },
    "issuer": {
      "name": "mydigicert"
    }
  }
}

Yanıt

StatusCode: 409, ReasonPhrase: 'Conflict'
{
  "error": {
    "code": "Forbidden",
    "message": "A new key vault certificate can not be created or imported while a pending key vault certificate's status is inProgress."
  }
}

Bir veren ile bekleyen istek oluşturulduğunda Birleştir

Bekleyen bir nesne veren ile oluşturulduğunda ancak durumu "sürüyor" olduğunda birleştirmeye izin verilmez.

X509 sertifikası oluşturma isteği başarısız olursa veya bazı nedenlerle iptal ederse ve bir x509 sertifikası bant dışı yollarla alınamazsa, KV sertifikasını tamamlamaya yönelik bir birleştirme işlemi yapılabilir.

Yöntem İstek URI'si
POST https://mykeyvault.vault.azure.net/certificates/mycert1/pending/merge?api-version={api-version}

İstek

{
  "x5c": [ "MIICxTCCAbi………………………trimmed for brevitiy……………………………………………EPAQj8=" ]
}

Yanıt

StatusCode: 403, ReasonPhrase: 'Forbidden'
{
  "error": {
    "code": "Forbidden",
    "message": "Merge is forbidden on pending object created with issuer : <issuer-name> while it is in progess."
  }
}

Bekleyen istek durumu "sürüyor" iken bir iptal iste

İptal etme yalnızca istenebilir. İstek iptal edilmiş olabilir veya iptal edilemez. Bir istek "InProgress" değilse, 400 (Hatalı Istek) http durumu döndürülür.

Yöntem İstek URI'si
DÜZELTMESI https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

İstek

DÜZELTMESI “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"

VEYA

DÜZELTMESI “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"

{
  "cancellation_requested": true
}

Yanıt

StatusCode: 200, ReasonPhrase: 'OK'
{
  "id": “https://mykeyvault.vault.azure.net/certificates/mycert1/pending",
  "issuer": {
    "name": "{issuer-name}"
  },
  "csr": "MIICq......DD5Lp5cqXg==",
  "cancellation_requested": true,
  "status": "inProgress",
  "status_details": "…",
  "request_id": "a76827a18b63421c917da80f28e9913d"
}

Bekleyen bir istek nesnesini Sil

Not

Bekleyen nesnenin silinmesi, sağlayıcıya yönelik x509 sertifika isteğini iptal edebilir veya iptal edemeyebilir.

Yöntem İstek URI'si
DELETE https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

İstek

SILMELI “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"

VEYA

SILMELI “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"

Yanıt

StatusCode: 200, ReasonPhrase: 'OK'
{
  "id": “https://mykeyvault.vault.azure.net/certificates/mycert1/pending",
  "issuer": {
    "name": "{issuer-name}"
  },
  "csr": "MIICq......DD5Lp5cqXg==",
  "cancellation_requested": false,
  "status": "inProgress",
  "request_id": "a76827a18b63421c917da80f28e9913d",
}

Bir KV sertifikasını el ile oluşturma

El ile oluşturma işlemi aracılığıyla tercih ettiğiniz bir CA ile verilen bir sertifika oluşturabilirsiniz. Verenin adını "bilinmiyor" olarak ayarlayın veya veren alanını belirtmeyin.

Yöntem İstek URI'si
POST https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version}

İstek

{
  "policy": {
    "x509_props": {
      "subject": "CN=MyCertSubject1"
    },
    "issuer": {
      "name": "Unknown"
    }
  }
}

Yanıt

StatusCode: 202, ReasonPhrase: 'Accepted'
Location: “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
{
  "id": “https://mykeyvault.vault.azure.net/certificates/mycert1/pending",
  "issuer": {
    "name": "Unknown"
  },
  "csr": "MIICq......DD5Lp5cqXg==",
  "status": "inProgress",
  "status_details": "Pending certificate created. Please Perform Merge to complete the request.",
  "request_id": "a76827a18b63421c917da80f28e9913d"
}

Bekleyen bir istek oluşturulduğunda Birleştir-el ile sertifika oluşturma

Yöntem İstek URI'si
POST https://mykeyvault.vault.azure.net/certificates/mycert1/pending/merge?api-version={api-version}

İstek

{
  "x5c": [ "MIICxTCCAbi………………………trimmed for brevitiy……………………………………………EPAQj8=" ]
}

Öğe adı Gerekli Tür Sürüm Açıklama
x5c Yes array <introducing version> X509 sertifika zinciri temel 64 dize dizisi olarak.

Yanıt

StatusCode: 201, ReasonPhrase: 'Created'
Location: “https://mykeyvault.vault.azure.net/certificates/mycert1?api-version={api-version}"
{
    "id": "https mykeyvault.vault.azure.net/certificates/mycert1/f366e1a9dd774288ad84a45a5f620352",
    "kid": "https:// mykeyvault.vault.azure.net/keys/mycert1/f366e1a9dd774288ad84a45a5f620352",
    "sid": " mykeyvault.vault.azure.net/secrets/mycert1/f366e1a9dd774288ad84a45a5f620352",
    "cer": "……de34534……",
    "x5t": "n14q2wbvyXr71Pcb58NivuiwJKk",
    "attributes": {
        "enabled": true,
        "exp": 1530394215,
        "nbf": 1435699215,
        "created": 1435699919,
        "updated": 1435699919
    },
    "pending": {
        "id": "https:// mykeyvault.vault.azure.net/certificates/mycert1/pending"
    },
    "policy": {
        "id": "https:// mykeyvault.vault.azure.net/certificates/mycert1/policy",
        "key_props": {
            "exportable": false,
            "kty": "RSA",
            "key_size": 2048,
            "reuse_key": false
        },
        "secret_props": {
            "contentType": "application/x-pkcs12"
        },
        "x509_props": {
            "subject": "CN=Mycert1",
            "ekus": ["1.3.6.1.5.5.7.3.1", "1.3.6.1.5.5.7.3.2"],
            "validity_months": 12
        },
        "lifetime_actions": [{
            "trigger": {
                "lifetime_percentage": 80
            },
            "action": {
                "action_type": "EmailContacts"
            }
        }],
        "issuer": {
            "name": "Unknown"
        },
        "attributes": {
            "enabled": true,
            "created": 1435699811,
            "updated": 1435699811
        }
    }
}