API を使用して DV 証明書をオーダーする場合、証明書の発行待ちで時間を使うことが非常によくあります。このワークフローガイドでのステップに従うことで、当社の即時発行機能を活用し、DV 証明書を即時発行および API コールを最大 70% 削減することができます。
Encryption Everywhere DV 証明書を請求するには、これらのステップにしたがって、お使いのアカウント用に AuthKey を構成しなければなりません。この構成がない場合、申請の提出時 auth_key_not_setup
エラーが出されます。
即時発行を利用するには、DV 証明書オーダーの提出前に、これらのステップを完了しなければなりません。
DV 証明書オーダーの提出時に、これらのステップが完了したら、当社では速やかに、DV 証明書を発行し、応答団体に中に返します。これらのステップのいずれかをスキップした場合、即時発行はできません。
はじめに、CertCentral アカウントの AuthKey を作成します。このキーを使用して、申請トークンを作成し、ドメインの利用権を確認します。AuthKey は、[AuthKey を作成する] endpoint.エンドポイントへの POST で、作成できます。
このエンドポイントへの POST が成功すると、200 OK HTTP 応答が返されます。応答団体には、以下の情報の2つのキーピースが含まれます。
auth_key_id
– 作成した AuthKey の一意 IDauth_key
– CertCentral アカウントについて作成した AuthKeyCertCentral アカウントについて存在する AuthKey は1つのみです。お使いのアカウントに AuthKey がすでにある場合、[AuthKey を作成する]エンドポイントは 400 不良申請 HTTP 応答を auth_key_exists_for_account
エラーをつけて返します。このエラーが出た場合は、[AuthKey 詳細]エンドポイントを使用して、既存の AuthKey を取得します。
curl -X POST \
https://www.digicert.com/services/v2/account/auth-key \
-H 'Content-Type: application/json' \
-H 'X-DC-DEVKEY: {{api_key}}'
{
"auth_key_id": "{{auth_key_id}}",
"auth_key": "{{auth_key}}"
}
{
"errors": [
{
"code": "auth_key_exists_for_account",
"message": "An error occurred while processing your request."
}
]
}
お使いのアカウントに AuthKey ができたら、次のステップとして、証明書オーダーに CSR を作成します。申請トークンの作成には CSR が必要です。CSR が証明書をインストールするサーバー上で生成されているかを確認します。
CSR の作成にサポートが必要ですか?「CSR (証明書署名申請) を作成する」を参照してください。
タイムスタンプにより、申請トークンの30日有効期間の開始時刻が決まります。タイプスタンプの作成時、生成される有効期間ウインドウが、DV 証明書オーダーの提出時と一致しているかを確認してください。オーダーがを有効期間ウインドウの前または後で提出した場合、即時発行はできません。
タイムスタンプを作成できるのは、未来の時刻です。ただし、DV 証明書はその日付前に提出しないでください。申請トークンがまだ "有効ではない"ため、,ドメイン名の利用権確認に使用できません。
申請トークンの有効期間ウインドウが開始になる時刻の決定後、下記のとおり、タイムスタンプの初期化が必要になります。
yyyyMMddhhmmss
例えば、October 21, 2019 1:30:12 PM
は 20191021133012
になります。
申請トークンには、タイムスタンプでデータを確定した30日の有効期間が入っています。申請トークンを生成するとき、その30日のタイムスタンプウインドウが証明書オーダーの提出時と一致しているかを確認してください。
これで AuthKey、CSR、およびタ印譜スタンプがそろったので、ドメイン名の利用権の確認に使用する申請トークンを生成する準備は完了です。この申請トークンにより、証明書オーダーを執行する前に、お持ちのドメインの DNS TXT レコードまたは fileauth.txt ファイルをセットアップすることができます。
0
) で事前保留されます。この疑似コードの例は、上記ステップを使用した申請トークンの生成方法を示しています。
# Declare AuthKey, CSR, and timestamp
auth_key = 'certcentral_account_auth_key'
csr = 'pem_formatted_csr'
timestamp = 'yyyyMMddhhmmss'
# Construct secret to be hashed
secret = timestamp + csr
# Hash secret using HMAC-SHA256 and auth_key
hash = hmac.sha256(secret, auth_key)
# Convert hexadecimal hash to decimal
decimal_hash = convertToBase10(hash)
# Convert decimal_hash to base36
base36_hash = convertToBase36(decimal_hash)
# If base36_hash length is < 50, prepend with zeros
valid_hash = base36_hash.padStart(50, '0')
# Construct final request token
request_token = timestamp + valid_hash
DV 証明書即時発行について、証明書をオーダーする前に、以下の場所の1つに申請トークンを入れる必要があります。
申請トークンを入れたら、DV 証明書オーダーを提出することができます。
申請トークンを含む DNS TXT レコードを作成することで、DV 証明書オーダーで、ドメイン名の利用権を確認することができます。DNS TXT レコードが作成されたら、DV 証明書を申請する ことができます。
申請トークンに DNS TXT を使用した場合、必ず dcv_method
値を dns-txt-token
に設定してください。
DNS プロバイダーのサイトに移動し、新しい TXT レコードを作成します。
[TXT 値]フィールドに、申請トークンを貼り付けます。
安全保護する証明shおオーダーとドメインによって異なりますが、[ホスト]フィールドに以下のいずれかを行ってください。
[レコードタイプ]フィールド (または同等のもの) で、[TXT]を選択します。
Time-to-Live (TTL) 値を選択するか、DNS プロバイダーのデフォルト値を使用します。
レコードを保存します。
DV 証明書オーダーを提出,し、dcv_method
を dns-txt-token
に設定したかを確認します。
お持ちのウェブサイトの事前確定した場所に申請トークンを含む fileauth.txt ファイルをホスティングすることで、DV 証明書オーダーで、ド面名の利用権を確認することができます。ファイル認証の使用時、もっと一般的な間違いを避けるようにしてください。
お持ちのウェブサイトでファイルが利用できるようになると、DV 証明書を申請することができます。
申請トークンにファイル認証を使用する場合、必ず dcv_method
値を http-token
に設定してください。
テキストエディタ (Notepad など) を開き、申請トークンに貼り付けます。
ファイルを fileauth.txt として保存します。
以下の場所のウェブサイトでファイルを利用できるようにします(必要に応じてディレクトリを作成)。
http://
[domain.name]
/.well-known/pki-validation/fileauth.txt
Windows ベースサーバーでは、.well-known フォルダをコマンドラインで作成する必要があります。mkdir .well-known
DV 証明書オーダーを提出,し、dcv_method
を http-token
に設定したかを確認します。
申請トークンを入れたら、DV 証明書オーダー申請の提出準備は完了です。これは [オーダー DV SSL] エンドポイントへの POST で実行します。
このエンドポイントへの POST が成功すると、201 作成済 HTTP 応答コードが返されます。すべての即時発行要件が満たされているため、完全証明書チェーンは、応答団体に戻されます。
DV 証明書オーダーをする場合、dcv_method
値が申請トークンの場所に対応しているかを確認してください。
前提条件のいずれかが満たされていない場合、即時発行はできません。完全証明書チェーンを受け取る代わりに、標準の [オーダー DV SSL 応答団体]を受け取ります。
curl -X POST \
'https://www.digicert.com/services/v2/order/certificate/{{dv_ssl_certificate_id}}' \
-H 'Content-Type: application/json' \
-H 'X-DC-DEVKEY: {{api_key}}' \
-d '{
"certificate": {
"common_name": "example.com",
"csr": "<csr>",
"server_platform": {
"id": 2
}
},
"validity_years": 1,
"dcv_method": "dns-txt-token"
}'
curl -X POST \
'https://www.digicert.com/services/v2/order/certificate/{{dv_ssl_certificate_id}}' \
-H 'Content-Type: application/json' \
-H 'X-DC-DEVKEY: {{api_key}}' \
-d '{
"certificate": {
"common_name": "example.com",
"csr": "<csr>",
"server_platform": {
"id": 2
}
},
"validity_years": 1,
"dcv_method": "http-token"
}'
{
"id": 112339,
"certificate_id": 132345,
"certificate_chain": [
{
"subject_common_name": "example.com",
"pem": "<pem_certificate>"
},
{
"subject_common_name": "DigiCert SHA2 Secure Server CA",
"pem": "<pem_certificate>"
},
{
"subject_common_name": "DigiCert Global Root CA",
"pem": "<pem_certificate>"
}
]
}