Sertifika oluşturmayı izleme ve yönetme

Şunlar için geçerlidir: Azure

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

  • Desteklenen bir verenle KV Sertifikası isteme
  • Bekleyen isteği alma - istek durumu "inProgress"
  • Bekleyen isteği alma - istek durumu "tamamlandı"
  • Bekleyen isteği alma - bekleyen istek durumu "iptal edildi" veya "başarısız"
  • Bekleyen isteği alma - bekleyen istek durumu "silindi" veya "üzerine yazıldı"
  • Bekleyen istek mevcut olduğunda oluştur (veya İçeri Aktar) - durum "inProgress"
  • Bekleyen istek bir verenle oluşturulduğunda birleştirme (örneğin DigiCert)
  • Bekleyen istek durumu "inProgress" olduğunda iptal isteğinde bulun
  • Bekleyen istek nesnesini silme
  • El ile KV sertifikası oluşturma
  • Bekleyen bir istek oluşturulduğunda birleştirme - el ile sertifika oluşturma

Desteklenen bir verenle KV Sertifikası isteme

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

Aşağıdaki örneklerde, "mydigicert" adlı bir nesnenin anahtar kasanızda veren sağlayıcı olarak DigiCert olarak zaten kullanılabilir olması gerekir. Sertifika veren, Azure Key Vault'ta (KV) CertificateIssuer kaynağı olarak temsil edilen bir varlıktır. KV sertifikasının kaynağı hakkında bilgi sağlamak için kullanılır; veren adı, sağlayıcı, kimlik bilgileri ve diğer yönetim ayrıntıları.

İste

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

Response

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 alma - istek durumu "inProgress"

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

İstek

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

VEYA

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

Not

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

Response

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 alma - istek durumu "tamamlandı"

İstek

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

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

VEYA

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

Response

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 alma - bekleyen istek durumu "iptal edildi" veya "başarısız"

İstek

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

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

VEYA

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

Yanıtla

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 kodunun değeri sırasıyla verene veya kullanıcı hatasına göre "Sertifika veren hatası" veya "İstek reddedildi" olabilir.

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

Durumu olmadığında, bekleyen bir nesne oluşturma/içeri aktarma işlemi inProgresstarafından silinebilir veya üzerine yazılabilir.

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

İstek

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

VEYA

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

Response

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

Bekleyen istek mevcut olduğunda oluştur (veya İçeri Aktar) - durum "inProgress"

Bekleyen nesnenin dört olası durumu vardır; "inprogress", "canceled", "failed" veya "completed."

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

Çakışmayı düzeltmek için:

  • Sertifika el ile oluşturuluyorsa, bir birleştirme yaparak KV sertifikasını tamamlayabilir veya bekleyen nesnede silebilirsiniz.

  • Sertifika bir verenle oluşturuluyorsa, sertifika tamamlanana, başarısız olana veya iptal edilene kadar bekleyebilirsiniz. Alternatif olarak, bekleyen nesneyi silebilirsiniz.

Not

Bekleyen bir nesne silindiğinde sağlayıcı ile x509 sertifika isteği iptal edilebilir veya iptal edilmeyebilir.

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

İste

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

Response

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."
  }
}

Bekleyen istek bir verenle oluşturulduğunda birleştirme

Bir verenle bekleyen bir nesne oluşturulduğunda birleştirmeye izin verilmez, ancak durumu olduğunda inProgressbu nesneye izin verilir.

x509 sertifikasını oluşturma isteği başarısız olursa veya bir nedenle iptal edilirse ve x509 sertifikası bant dışı araçlarla alınabiliyorsa, KV sertifikasını tamamlamak için birleştirme işlemi yapılabilir.

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

İste

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

Response

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 "inProgress" olduğunda iptal isteğinde bulun

İptal yalnızca talep edilebilir. İstek iptal edilebilir veya iptal edilmeyebilir. İstek "inProgress" değilse, 400 (Hatalı İstek) http durumu döndürülür.

Metot İstek URI'si
PATCH https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

İstek

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

VEYA

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

{
  "cancellation_requested": true
}

Response

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 istek nesnesini silme

Not

Bekleyen nesne silindiğinde, sağlayıcıyla x509 sertifika isteği iptal edilebilir veya iptal edilmeyebilir.

Metot İstek URI'si
SİL https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

İstek

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

VEYA

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

Response

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",
}

El ile KV sertifikası oluşturma

El ile oluşturma işlemi aracılığıyla, seçtiğiniz bir CA ile verilen bir sertifika oluşturabilirsiniz. Verenin adını "Bilinmiyor" olarak ayarlayın veya veren alanını belirtmeyin.

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

İste

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

Response

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ştirme - el ile sertifika oluşturma

Metot İ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ı Zorunlu Tür Sürüm Açıklama
x5c Yes dizi <sürüm tanıtımı> Temel 64 dize dizisi olarak X509 sertifika zinciri.

Yanıtla

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
		}
	}
}