OV/EV 인증서 수명 주기

OV/EV 인증서 수명 주기는 다음 주요 단계로 구성됩니다.

  • 인증서 요청 준비
  • 인증서 주문 제출
  • (옵션) 인증서 주문 취소
  • DCV(도메인 제어 유효성 검사) 완료
  • 조직 유효성 검사 완료
  • 주문 상태 확인
  • 발급한 인증서 다운로드

인증서를 발급한 후에 다음 작업을 수행할 수 있습니다.

  • 인증서 재발급
  • 인증서 철회

인증서 요청 준비

요청 본문을 만들고 주문 요청을 제출하려면 몇 개 중요 정보를 수집해야 합니다.

  • 인증서로 보호할 도메인 이름입니다.
  • 인증서를 설치할 서버에서 생성한 CSR(인증서 서명 요청)입니다.
  • 인증서의 유효 기간(인증서가 유효해야 하는 기간)입니다.
  • 도메인에 대한 제어를 증명할 때 사용할 DCV 방법입니다.
  • 유효성을 검사하는 조직에 대한 법인명 및 등록 정보입니다.

도메인 이름

인증서로 보호할 도메인 이름을 수집했으면 두 개의 요청 본문 매개 변수 중 한 개에 입력해야 합니다.

매개 변수 유형 설명
common_name string 인증서로 보호하는 주요 도메인입니다.
dns_names 배열 인증서로 보호하는 추가 도메인입니다.
이 매개 변수에 도메인을 추가하면 추가 비용이 발생할 수 있습니다.

모든 OV/EV 인증서 주문은 무료로 단일 도메인 인증서에 특정 추가 SAN을 포함할 수 있습니다. 요청 본문을 구성할 때 기본 도메인([your-domain].com)을 common_name 매개 변수에 추가한 후에 도메인의 다른 버전(www.[your-domain].com)을 dns_names 배열에 추가합니다.

CSR(인증서 서명 요청)

인증서를 설치할 서버에서 CSR(인증서 서명 요청)을 생성해야 합니다. 생성한 후에는 PEM 형식 CSR을 요청 본문의 csr 매개 변수에 입력합니다. 추가 정보는 CSR(인증서 서명 요청) 만들기를 참조하십시오.

유효 기간

인증서를 주문할 때 인증서 유효 기간을 지정해야 합니다. 다음과 같은 매개 변수를 사용하여 인증서가 유효한 기간을 결정할 수 있습니다.

매개 변수 유형 설명
validity_years int(정수) 인증서 유효 기간을 연도로 지정할 때 이 매개 변수를 사용합니다.
허용되는 값: 1, 2
validity_days int(정수) 인증서 유효 기간을 날짜로 지정할 때 이 매개 변수를 사용합니다.
custom_expiration_date string 인증서가 만료되어야 하는 특정 날짜를 지정할 때 이 매개 변수를 사용합니다.
형식: yyyy-MM-dd

요청 본문에 한 개 이상의 유효 기간 매개 변수를 포함한 경우, 다음과 같이 우선 순위를 지정합니다: custom_expiration_date > validity_days > validity_years.

DCV 방법

이메일 DCV는 OV/EV 인증서 주문에 사용하는 기본값 DCV 방법입니다. 원하는 경우, 요청 본문에 dcv_method 매개 변수를 포함하여 기본값 DCV 방법을 변경할 수 있습니다. dcv_method 매개 변수는 다음 값을 수락합니다.

설명
email DCV 이메일을 도메인의 WHOIS 레코드에서 찾는 이메일 주소(예, 관리자 및 기술 연락처) 및 도메인에 대한 다섯 개의 지정된 이메일(admin, administrator, webmaster, hostmaster 및 postmaster
@[domain_name])로 보냅니다.
이 방법을 사용할 때는 dcv_emails 개체를 포함하여 특정 이메일 범위를 정의할 수 있습니다.
dns-cname-token 도메인의 DNS CNAME 레코드에 추가할 응답 본문의 임의 값 토큰을 반환합니다. 이 방법을 사용하려면 도메인 DNS 레코드를 수정할 수 있어야 합니다.
dns‑txt‑token 도메인의 DNS TXT 레코드에 추가할 응답 본문의 임의 값 토큰을 반환합니다. 이 방법을 사용하려면 도메인 DNS 레코드를 수정할 수 있어야 합니다.
http‑token 인증서로 보호해야 하는 웹사이트의 .txt 파일에 놓아야 하는 응답 본문의 임의 값 토큰을 반환합니다. 이 방법을 사용하려면 웹 서버에 파일을 업로드할 수 있어야 합니다.

다양한 DCV 방법 및 이들을 완료하는 방법은 보류 중 인증서 주문에서 도메인에 대한 제어 증명을 참조하십시오.

(옵션) dcv_emails 배열

이메일 DCV 방법을 사용하려면 DCV 이메일 보낼 때 사용해야 하는 이메일 주소를 지정하는 것이 가능합니다. 그러려면 요청 본문에 dcv_emails 배열을 포함하고 주문의 각 도메인에 대한 항목을 추가합니다.

이 매개 변수를 사용하면 입력한 이메일 주소는 도메인의 WHOIS 레코드에 지정되거나 도메인에 대한 기본값 이메일 주소(정의된 업계 표준은 admin, administrator, webmaster, hostmaster 및/또는 postmaster @[domain_name])로 보냅니다. 또는 DCV 이메일은 지정된 주소로만 보낼 것입니다.

예를 들어 john.doe@를 지정한 경우[domain_name], DCV 이메일을 기본값 이메일 주소로 보내지 않을 것입니다. 또는 admin@[domain.com], 를 지정한 경우 DCV 이메일을 john.doe@[domain_name]추가했습니다.

Example dcv_emails array
"dcv_emails": [
  { 
    "dns_name": "example.com",
    "email_domain": "example.com",
    "email": "hostname@example.com"
  },
  { 
    "dns_name": "my.example.com",
    "email_domain": "example.com",
    "email": "admin@example.com"
  },
  { 
    "dns_name": "another.example.com",
    "email_domain": "example.com",
    "email": "admin@example.com"
  }
]

인증서 주문 제출

이제 위의 정보를 수집했으므로 요청 본문을 구성하고 주문 요청을 제출할 준비가 되었습니다. 이것은 OV/EV SSL 주문 엔드포인트에 POST로 수행합니다. Secure Site 제품군은 별도의 엔드포인트를 통하여 주문합니다.

조직 상세 정보 및 연락처는 organization 개체에서 여기로 제출합니다. 조직에 이미 할당된 ID가 있는 경우, 전체 조직 정보를 제공하는 대신에 id 문자열로 간단하게 전달할 수 있습니다.

이 엔드포인트에 POST가 성공적이면 201 Created HTTP 응답 코드가 반환됩니다. 응답 본문은 주문의 상태를 확인하고 발급된 후에 인증서를 다운로드하는 데 사용하는 중요 정보를 포함합니다.

  • id – 주문 상세 정보를 확인하고 DCV 작업을 수행하는 사용하는 주문 ID입니다.
  • certificate_id – 발급한 인증서를 다운로드하는 데 사용하는 인증서 ID입니다.
  • dcv_random_value – dns-txt-token 및 http-token DCV 방법에 사용되는 임의로 생성된 토큰입니다. 이 토큰은 30일 후에 만료됩니다.

요청 본문에서 사용하는 각 매개 변수에 대한 자세한 정보는 OV/EV SSL 주문 – 요청 매개 변수 표를 참조하십시오.

cURL
curl -X POST \
  'https://www.digicert.com/services/v2/order/certificate/{{ssl_certificate_id}}' \
  -H 'Content-Type: application/json' \
  -H 'X-DC-DEVKEY: {{api_key}}' \
  -d '{
    "certificate": {
        "common_name": "example.com",
        "dns_names": [
            "sub.example.com",
            "app.example.com"
        ],
        "csr": "<csr>",
        "server_platform": {
            "id": 45
        },
        "signature_hash": "sha256",
        "organization_units": [
            "Accounting department"
        ]
    },
    "validity_years": 2,
    "comments": "Message for the approver",
    "disable_renewal_notifications": true,
    "locale": "en",
    "dcv_emails": [
      { 
        "dns_name": "example.com",
        "email_domain": "example.com",
        "email": "hostname@example.com"
      },
      { 
        "dns_name": "sub.example.com",
        "email_domain": "example.com",
        "email": "admin@example.com"
      },
      { 
        "dns_name": "app.example.com",
        "email_domain": "example.com",
        "email": "admin@example.com"
      }
    ]
    "payment_method": "balance",
    "organization": {
        "name": "Epigyne Unwieldiness llc",
        "assumed_name": "Epigyne Unwieldiness",
        "country": "us",
        "address": "932 Prospect Street",
        "address2": "Floor 08",
        "city": "Minneapolis",
        "state": "mn",
        "zip": "40849",
        "telephone": "666-186-6450",
        "container": {
            "id": 93288
        },
        "organization_contact": {
            "first_name": "Gia",
            "last_name": "Booth",
            "job_title": "Clinical Laboratory Technician",
            "email": "gia.booth@inbox.com",
            "telephone": "666-186-6450",
            "telephone_extension": "736"
        }
    },
    "custom_fields": [
        {
            "metadata_id": 11,
            "value": "Invoice #00001"
        }
    ]
}'
201 Created (email)
{
  "id": 112233,
  "certificate_id": 123456
}
201 Created (dns-txt-token or http-token)
{
  "id": 112233,
  "certificate_id": 123456,
  "dcv_random_value": "icru1984rnekfj"
}

주문을 제출한 후에 주문 정보 엔드포인트를 사용하여 주문 상세 정보를 확인하고 제출한 정보를 검토할 수 있습니다.

(옵션) 인증서 주문 취소

주문한 후에 취소해야 할 때가 있을 수 있습니다. 주문을 취소하려면 상태를 보류 중에서 취소로 변경해야 합니다. 이것은 주문 상태 업데이트 엔드포인트에 PUT으로 수행합니다.

이 엔드포인트에 PUT이 성공적이면 204 No Content HTTP 응답이 반환될 것입니다.

status 매개 변수에 허용되는 유일한 값은 CANCELED(대/소문자 구분)입니다.

cURL
curl -X PUT \
  'https://www.digicert.com/services/v2/order/certificate/{{order_id}}/status' \
  -H 'Content-Type: application/json' \
  -H 'X-DC-DEVKEY: {{api_key}}' \
  -d '{
    "status": "CANCELED",
    "note": "Message about the cancellation."
}'
204 No Content
// empty

DCV(도메인 제어 유효성 검사) 완료

OV/EV 주문을 제출했으면 이제 주문의 도메인에 대한 제어를 증명해야 합니다.

선택한 DCV 방법에 관계 없이 인증서로 보호해야 하는 각 도메인에 대한 DCV를 완료해야 합니다. 예를 들어, dns-txt-token 방법을 선택한 경우, 주문의 각 도메인에 대한 DNS TXT 레코드를 만들어야 합니다.

이메일 DCV 방법

응답 본문에 dcv_emails 배열을 포함하는 경우, DCV 이메일을 배열에 정의된 주소로 보냅니다. 그렇지 않으면 DV 이메일을 다음 이메일 주소로 보냅니다.

  • 도메인의 WHOIS 레코드에 있는 이메일 주소
  • 다음 다섯 개의 구성된 이메일 주소:
    • admin@[domain_name]
    • administrator@[domain_name]
    • webmaster@[domain_name]
    • hostmaster@[domain_name]
    • postmaster@[domain_name]

이메일 DCV를 완료하려면 이메일 클라이언트 받은 편지함에서 제목이[작업 필요] 인증서 요청 승인[yourdomain] {주문 번호}인 이메일을 찾고 설명을 따릅니다.

제출한 주문에 대한 DCV 이메일을 다시 보내야 하는 경우, 이메일 다시 보내기 엔드포인트를 사용합니다.({{order_id}} 자리 표시자를 주문을 제출했을 때 응답 본문에서 반환된 주문 ID로 교체합니다.)

DNS CNAME DCV 방법

다음 단계를 따라서 DNS CNAME DCV를 완료하고 도메인에 대한 제어를 증명합니다.

  1. 주문했을 때 생성된 dcv_random_value을(를) 복사합니다. OV/EV 주문의 경우, 도메인 정보 엔드포인트를 사용하고 include_dcv=true URL 쿼리 문자열을 포함하여 이 값을 받을 수 있습니다.
  2. DNS 공급자의 사이트에서 새 CNAME 레코드를 만듭니다.
  3. 호스트 이름 필드에(또는 동등한 필드) 복사한 임의의 값을 입력합니다.
  4. 레코드 유형 필드(또는 상응하는 필드)에서 CNAME을 선택합니다.
  5. 대상 호스트 필드(또는 상응하는 필드)에 dcv.digicert.com(이것은 CNAME 레코드를 dcv.digicert.com에 가리킵니다)을 입력합니다.
  6. TTL(Time-to-Live) 값을 선택하거나 DNS 공급자의 기본값을 사용합니다.
  7. 레코드를 저장합니다.
  8. 위 단계를 주문의 각 도메인에 대해 반복합니다.

주문의 모든 도메인에 대한 DNS CNAME를 추가했으면 저희에게 CNAME 레코드를 확인할 준비가 된 것입니다.

DNS TXT DCV 방법

다음 단계를 따라서 DNS TXT DCV를 완료하고 도메인에 대한 제어를 증명합니다.

  1. 주문했을 때 생성된 dcv_random_value을(를) 복사합니다. OV/EV 주문의 경우, 도메인 정보 엔드포인트를 사용하고 include_dcv=true URL 쿼리 문자열을 포함하여 이 값을 받을 수 있습니다.
  2. DNS 공급자의 사이트에서 새 TXT 레코드를 만듭니다.
  3. TXT 값 필드에 복사한 임의의 값을 입력합니다.
  4. 호스트 필드
    1. 기본 도메인 (예를 들어,[yourdomain].com)
      기본 도메인을 유효성 검사하는 것입니까? 호스트 필드를 공백으로 남겨두거나 @ 심볼을 추가합니다.(DNS 공급자의 요구 사항을 따릅니다.)
    2. 하위 도메인 (예를 들어,[your.domain].com)
      하위 도메인을 유효성 검사하는 것입니까? 호스트 필드에 유효성을 검사하는 하위 도메인을 추가합니다.
  5. 레코드 유형 필드(또는 상응하는 필드)에서 TXT를 선택합니다.
  6. TTL(Time-to-Live) 값을 선택하거나 DNS 공급자의 기본값을 사용합니다.
  7. 레코드를 저장합니다.
  8. 위 단계를 주문의 각 도메인에 대해 반복합니다.

주문의 모든 도메인에 대한 DNS TXT를 추가했으면 저희에게 TXT 레코드를 확인할 준비가 된 것입니다.

HTTP 토큰 DCV 방법

다음 단계를 따라서 HTTP 토큰 DCV를 완료하고 도메인에 대한 제어를 증명합니다.

  1. CertCentral에서 HTTP 토큰 정보를 주문 상세 정보 페이지에서 복사합니다.
  2. 즐겨 사용하는 텍스트 편집기에 복사한 임의 값을 붙여넣습니다.
  3. 파일 이름으로 fileauth.txt로 파일을 저장합니다.
  4. 웹 서버에 fileauth.txt 파일을 이 위치에 업로드합니다: [yourdomain]/.well-known/pki-validation/fileauth.txt.

DCV 확인 수행

주문의 각 도메인에 대해 임의 토큰을 DNS TXT 레코드(DNS TXT 방법)에 업로드하거나 fileauth.txt를 특정 위치(HTTP DCV 방법)에 업로드했으면 DCV 확인을 수행할 준비가 되었습니다. 이것은 CertCentral의 주문 상세 정보 페이지를 통해 수행합니다.

페이지의 주문 상태 섹션에서 아직 보류 중 DCV로 나열된 각 도메인을 클릭하고 "확인"을 클릭하여 DCV 방법을 확인합니다.

조직 유효성 검사

도메인 유효성 검사 외에도 모든 OV/EV 주문은 또한 조직 유효성 검사가 필요합니다. 주문을 제출했으면 DigiCert의 유효성 검사 팀에서 OV/EV 조직 유효성 검사 절차를 시작합니다.

인증서를 발급하기 전에 조직 유효성 검사 및 도메인 유효성 검사를 모두 완료해야 합니다.

유효성 검사 상태 확인

조직 유효성 검사 상세 정보 엔드포인트에 GET을 사용하여 조직에 대한 현재 유효성 검사 상태를 확인할 수 있습니다.

이 엔드포인트에 GET이 성공적이면 200 OK HTTP 응답이 반환됩니다.

cURL
curl -X GET \
  'https://www.digicert.com/services/v2/organization/{{organization_id}}/validation' \
  -H 'Content-Type: application/json' \
  -H 'X-DC-DEVKEY: {{api_key}}'
200 OK
{
  "validations": [
    {
      "type": "ov",
      "name": "OV",
      "description": "Normal Organization Validation",
      "status": "pending"
    },
    {
      "type": "ev",
      "name": "EV",
      "description": "Extended Organization Validation (EV)",
      "status": "pending",
      "verified_users": [
        {
          "id": 12,
          "first_name": "John",
          "last_name": "Smith"
        }
      ]
    }
  ]
}

주문 상태 확인

주문을 제출하고 각 도메인에 대한 DCV를 완료한 후에는 주문 상태가 변경될 때 및 인증서를 다운로드할 준비가 될 때를 알고 싶을 것입니다. 가장 좋은 방법은 상태 변경 목록 엔드포인트에 GET을 이용하는 것입니다.

이 엔드포인트에 GET에서 세 개의 가능한 응답이 있습니다.

  • 200 OK (orders 배열) – 주문 배열에는 지정된 타임프레임에 상태를 변경한 모든 주문을 나열합니다. 주문의 상태가 보류 중에서 발급됨으로 바뀌면 목록에 나타납니다. 여러 주문이 반환되는 경우, 주문 ID 또는 인증서 ID를 사용하여 주문을 찾습니다.
  • 200 OK (빈 개체) – 응답에 개체가 비어 있는 것은({}) 지정된 타임프레임에 주문에 상태가 변경되지 않은 것을 의미합니다. 타임프레임을 늘리거나 기다려서 다른 요청을 보냅니다.
  • 400 Bad Request – 응답에 time_frame_too_long 오류 코드가 포함되면 URL 쿼리 문자열에 지정한 타임프레임이 최대 값을 초과함을 의미합니다. 타임프레임을 10080분(7일) 이하의 값으로 줄입니다.

cURL
curl -X GET \
  'https://www.digicert.com/services/v2/order/certificate/status-changes?minutes=10' \
  -H 'Content-Type: application/json' \
  -H 'X-DC-DEVKEY: {{api_key}}'
200 OK
{
  "orders": [
    {
      "order_id": 112233,
      "certificate_id": 123456,
      "status": "issued"
    }
  ]
}
200 OK (no orders found)
{}
400 Bad Request
{
  "errors": [
    {
      "code": "time_frame_too_long",
      "message": "An error occurred while processing your request."
    }
  ]
}

인증서 다운로드

주문 상태가 보류 중에 발급됨으로 변경되면 인증서는 다운로드할 준비가 되었습니다. 필요에 따라서 인증서를 다운로드하기 위해 사용할 수 있는 네 개의 엔드포인트가 있습니다.

인증서 재발급

인증서를 다시 발급하면 새 주문을 제출하지 않고 도메인 이름을 추가, 제거 또는 전환하거나 CSR을 업데이트하거나 인증서의 서명 해시를 변경할 수 있습니다. 다시 발급한 인증서는 새 인증서 ID를 갖지만 동일한 주문 ID를 갖습니다. 재발급이 승인된 후에 새 인증서가 발급되며 다시 설치해야 합니다.

인증서를 다시 발급하면 이 정보를 제공해야 합니다.

  • 일반 이름
  • SAN(dns_names 매개 변수에 현재 SAN과 보호할 추가 SAN을 모두 포함)
  • CSR(현재 CSR을 받아서 다시 사용하려면 정보 요청 엔드포인트를 사용)
  • 서버 플랫폼 ID (여기에 옵션 목록)

위 상세 정보의 일부분이 동일하더라도 재발급 요청에 포함해야 합니다.

SAN('dns_names') 추가와 같은 특정 변경에는 추가 비용이 발생할 수 있습니다.

일부 또는 전체 도메인에 대한 DCV를 수행할 필요가 있을 수 있습니다.

인증서 재발급 엔드포인트는 다음 옵션 매개 변수를 수락합니다.

  • comments – 요청에 승인자를 위한 메시지를 추가합니다.
  • skip_approval -- 요청을 즉시 유효성 검사에 제출하고 재발급 요청을 승인할 필요를 건너뜁니다.
cURL
curl -X POST \
  'https://www.digicert.com/services/v2/order/certificate/{{order_id}}/reissue' \
  -H 'Content-Type: application/json' \
  -H 'X-DC-DEVKEY: {{api_key}}' \
  -d '{
  "certificate": {
    "common_name": "example.com",
    "dns_names": [
        "sub.example.com"
    ],
    "csr": "<csr>",
    "server_platform": {
      "id": 2
    },
    "signature_hash": "sha256"
    "skip_approval": true
  }
}'
201 Created
{
  "id": 112233,
  "requests": [
    {
      "id": 332211
    }
  ]
}
201 skip_approval
{
  "id": 112233,
  "certificate_id": 111112
}

재발급이 완료된 후에 새 인증서를 발급합니다.(인증서 다운로드를 참조)

재발급 목록 엔드포인트를 사용하여 주문에 대한 전체 재발급 기록을 받을 수 있습니다.

인증서 철회

주문이 발급되면 필요에 따라 철회 요청을 제출할 수 있습니다.

DigiCert에서 인증서를 철회하기 전에 CertCentral에서 관리자가 모든 철회 요청을 승인해야 합니다. 이 승인 단계는 필수이며 건너뛸 수 없습니다.

두 개 엔드포인트 중 한 개를 사용하여 인증서를 철회할 수 있습니다.

  • 인증서 철회 – 인증서 ID로 지정한 특정 인증서를 철회하려면 이 엔드포인트를 사용합니다.
  • 인증서 주문 철회 – 주문 ID와 연결된 모든 인증서를 철회하려면 이 엔드포인트를 사용합니다.

두 개 엔드포인트는 모두 동일한 요청 본문 매개 변수를 가지고 있습니다.

철회 요청을 제출한 후에 요청은 요청 상태 업데이트 엔드포인트를 사용하여 관리자가 승인해야 합니다.

cURL
curl -X PUT \
  'https://www.digicert.com/services/v2/certificate/{{certificate_id}}/revoke' \
  -H 'Content-Type: application/json' \
  -H 'X-DC-DEVKEY: {{api_key}}' \
  -d '{
  "comments": "I no longer need this cert."
}'
201 Created
{
  "id": 1,
  "date": "2016-02-10T17:06:15+00:00",
  "type": "revoke",
  "status": "pending",
  "requester": {
    "id": 14,
    "first_name": "John",
    "last_name": "Smith",
    "email": "john.smith@digicert.com"
  },
  "comments": "I no longer need this cert."
}