Quando si utilizza l’API per ordinare i certificati DV, ci vuole troppo tempo per aspettare l’emissione del certificato. Seguendo la procedura indicata in questa guida al flusso di lavoro, sarai in grado di trarre vantaggio dalla nostra funzione di emissione immediata dei certificati DV, consentendoti di ricevere immediatamente il certificato DV emesso e ridurre le chiamate API fino al 70%.
Per richiedere i certificati DV Encryption Everywhere, devi seguire questa procedura e configurare una Chiave di autenticazione per il tuo account. Se non lo fai, riceverai un errore auth_key_not_setup
quando invii una richiesta.
Per trarre vantaggio dall’emissione immediata, devi completare questa procedura prima di inviare l’ordine di certificato DV:
Se tutte le fasi sono state completate quando invii il tuo ordine di certificato DV, emettiamo immediatamente il tuo certificato DV e lo riportiamo nel corpo della risposta. Se manca una qualsiasi di queste fasi, non è possibile effettuare l’emissione immediata.
Prima di tutto, devi creare una Chiave di autenticazione per il tuo account CertCentral. Utilizzerai questa chiave per generare un token richiesta per fornire il controllo sul dominio. Puoi creare una Chiave di autenticazione con un POST per l’endpoint Crea crea chiave di autenticazione.
Un POST corretto a questo endpoint genera una risposta HTTP 200 OK. Il corpo della risposta include due informazioni importanti:
auth_key_id
– ID univoco della Chiave di autenticazione creata.auth_key
– Chiave di autenticazione generata per il tuo account CertCentral.Per il tuo account CertCentral può esistere solo una Chiave di autenticazione. Se il tuo account ha già una Crea chiave di autenticazione, l’endpoint Crea chiave di autenticazione riporta una risposta HTTP 400 richiesta sbagliata con l’errore auth_key_exists_for_account
. Se si verifica questo errore, puoi usare l’endpoint dettagli chiave di autenticazione per ottenere la tua chiave di autenticazione esistente.
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."
}
]
}
Una volta che hai la chiave di autenticazione per il tuo account, la fase successiva è creare una CSR per l’ordine di certificato. Ti servirà la CSR per generare un token richiesta. Verifica di generare la CSR sul server dove sarà installato il certificato.
Ti serve aiuto per creare una CSR? Consulta Crea una CSR (richiesta di firma certificato).
Il timestamp determina quando inizia il periodo di validità di 30 giorni del token richiesta. Quando si crea un timestamp, verifica che la finestra di validità generata coincida con il momento in cui invii il tuo ordine di certificato DV. Se l’ordine viene inviato prima o dopo la finestra di validità, l’emissione immediata non può avvenire.
Puoi creare un timestamp per una data futura. Tuttavia, non inviare l'ordine di certificato DV prima di quella data. Poiché il token richiesta non è ancora "valido", non può essere usato per convalidare il dominio.
Dopo aver determinato quando deve iniziare la finestra di validità del token richiesta, devi formattare il timestamp come mostrato di seguito:
yyyyMMddhhmmss
Ad esempio, October 21, 2019 1:30:12 PM
diventerà 20191021133012
.
I token richiesta hanno una validità di 30 giorni determinata dalla data riportata nel timestamp. Quando si genera un token richiesta, verifica che la finestra del timestamp di 30 giorni coincida con il momento in cui invii il tuo ordine di certificato.
Ora che hai la chiave di autenticazione, la CSR e il timestamp, sei pronto per generare un token richiesta usato per dimostrare il controllo sul dominio. Questo token richiesta ti consente di impostare il record DNS TXT del tuo dominio o il file fileauth.txt prima di effettuare un ordine di certificato.
0
) finché non è lungo 50 caratteri.Questo pseudo-codice di esempio mostra come usare la procedura sopra riportata per generare un token richiesta:
# 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
Per l’emissione immediata di certificati DV, devi posizionare il token richiesta in una di queste parti prima di ordinare il certificato:
Una volta posizionato il token richiesta, puoi inviare il tuo ordine di certificato DV.
Puoi dimostrare il controllo su un dominio sul tuo ordine di certificato DV creando un record DNS TXT contenente il token richiesta. Una volta creato il record DNS TXT, puoi richiedere il tuo certificato DV.
Accertati di impostare il valore dcv_method
su dns-txt-token
quando si utilizza DNS TXT per il tuo token richiesta.
Vai sul sito del to DNS e crea un nuovo record TXT.
Nel campo Valore TXT, incolla il token richiesta.
In base all’ordine di certificato e al dominio da proteggere, procedure con una di queste fasi per il campo Host:
Nel campo del tipo di record (o equivalente), seleziona TXT.
Seleziona un valore Time-to-Live (TTL) o utilizza il valore predefinito del tuo DNS provider.
Salva il record.
Invia ordine di certificato DV, verificando di impostare dcv_method
su dns-txt-token
.
Puoi dimostrare il controllo su un dominio sul tuo ordine di certificato DV creando l’host di un file un fileauth.txt contenente il token richiesta in una posizione predeterminata sul sito web. Verifica di evitare alcuni degli errori più comuni quando utilizzi l’Autenticazione file.
Una volta che il file è disponibile sul tuo sito web, puoi richiedere il tuo certificato DV.
Accertati di impostare il valore dcv_method
su http-token
quando utilizzi l’Autenticazione file per il tuo token richiesta.
Apri un editor di testo (ad esempio Notepad) e incolla il tuo token richiesta.
Salva il file come fileauth.txt.
Rendi il file disponibile sul tuo sito web in questa posizione (crea delle directory come necessario):
http://
[dominio.nome]
/.well-known/pki-validation/fileauth.txt
Sui server basati su Windows, la cartella .well-known deve essere creata tramite la riga di comando: mkdir .well-known
Invia ordine di certificato DV, verificando di impostare dcv_method
su http-token
.
Una volta posizionato il token richiesta, sei pronto per inviare la richiesta dell’ordine di certificato DV. Ciò avviene con un POST all’endpoint Ordina DV SSL.
Un POST corretto a questo endpoint riporterà un codice di risposta HTTP 201 creato. Se tutti i requisiti di emissione immediata vengono soddisfatti, nel corpo della risposta viene fornita la catena dei certificati completa.
Quando si posiziona l’ordine di certificato DV, verifica che il valore dcv_method
corrisponda alla posizione del token richiesta.
Se manca uno qualsiasi dei prerequisiti, non sarà possibile effettuare l’emissione immediata. Anziché ricevere la catena dei certificati completa, riceverai il corpo di risposta SSL DV ordine standard.
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>"
}
]
}