Ao usar a API para pedir seus certificados DV, muito geralmente tempo é gasto apenas esperando a emissão do certificado. Ao seguir as etapas neste guia de fluxo de trabalho, você poderá tirar vantagem do nosso recurso de emissão imediata do certificado DV, permitindo a emissão imediata do seu certificado DV e redução das suas chamadas de API em até 70%.
Para solicitar certificados Encryption Everywhere DV, você deve seguir estas etapas e configurar uma AuthKey para a sua conta. Caso contrário, você receberá um erro auth_key_not_setup
ao enviar uma solicitação.
Para tirar vantagem da emissão imediata, é necessário completar estas etapas antes de enviar o seu pedido de certificado DV:
Se todas estas etapas estiverem concluídas ao enviar o seu pedido de certificado DV, nós imediatamente enviaremos o seu certificado DV e o devolveremos no corpo da resposta. Se qualquer uma destas etapas forem puladas, a emissão imediata não poderá acontecer.
Primeiro, é necessário criar uma AuthKey para a sua conta da CertCentral. Você usará esta chave para gerar um token da solicitação para provar controle sobre o domínio. É possível criar uma AuthKey com uma POST ao ponto de extremidade Create AuthKey.
Um POST bem-sucedido a este ponto de extremidade retorna uma resposta HTTP 200 OK. O corpo da resposta inclui duas partes de informações:
auth_key_id
– ID exclusiva da AuthKey criada.auth_key
– AuthKey gerada para a sua conta da CertCentral.Apenas uma AuthKey pode existir para a sua conta da CertCentral. Se a sua conta já tiver uma AuthKey, o ponto de extremidade Create AuthKey retorna uma resposta HTTP 400 Bad Request com o erro auth_key_exists_for_account
. Se você encontrar este erro, é possível usar o ponto de extremidade AuthKey details para obter a sua AuthKey existente.
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."
}
]
}
Após tiver a AuthKey para a sua conta, a próxima etapa é criar um CSR para o pedido do certificado. Será necessário o CSR para gerar um token da solicitação. Certifique-se de gerar o seu CSR no servidor em que o certificado estará instalado.
Precisa de ajuda para criar um CSR? Veja Criar um CSR (Solicitação de Assinatura de Certificado).
O carimbo de data e hora determina quando o período de validade de 30 dias do token da solicitação começa. Ao criar um carimbo de data e hora, certifique-se de que a janela de validade resultante coincida com quando você enviará o seu pedido de certificado DV. Se o seu pedido for enviado antes ou após a janela de validade, a emissão imediata não poderá acontecer.
Você pode criar um carimbo de data e hora para uma data futura. Contudo, não envie o pedido de certificado DV antes de tal data. Como o token da solicitação ainda não é "válido", ele não pode ser usado para validar o domínio.
Após determinar quando a janela de validade do token da solicitação começará, é necessário formatar o carimbo de data e hora conforme exibido abaixo:
yyyyMMddhhmmss
Por exemplo, October 21, 2019 1:30:12 PM
se tornaria 20191021133012
.
Tokens da solicitação têm uma validade de 30 dias determinada pelos dados no carimbo de data e hora. Ao gerar um token da solicitação, certifique-se de que a sua janela do carimbo de data e hora de 30 dias coincida com quando você enviará o seu pedido de certificado.
Agora que você tem a sua AuthKey, CSR e carimbo de data e hora, você está pronto para gerar um token de solicitação usado para provar controle sobre o domínio. Este token da solicitação lhe permite configurar o registro DNS TXT do seu domínio ou o arquivo fileauth.txt antes de fazer um pedido de certificado.
0
) até ter 50 caracteres.Este pseudocódigo mostra como usar as etapas acima para gerar um token de solicitação:
# 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
Para a emissão imediata de certificados DV, é necessário colocar o token de solicitação em um destes lugares antes de pedir o certificado:
Depois da colocação do token de solicitação, é possível enviar o seu pedido de certificado DV.
É possível demonstrar controle sobre um domínio no seu pedido de certificado DV ao criar um registro DNS TXT contendo o token da solicitação. Depois da criação do registro, é possível solicitar o seu certificado DV.
Certifique-se de definir o dcv_method
valor para dns-txt-token
ao usar DNS TXT para o seu token de solicitação.
Visite o site do seu provedor DNS e crie um novo registro TXT.
No campo Valor TXT, cole o token de solicitação.
Dependendo do seu pedido do certificado e domínio a ser protegido, faça um dos seguintes para o campo Host:
No campo tipo de registro (ou equivalente), selecione TXT.
Selecione um valor para Vida útil (TTL) ou use seu valor padrão do provedor DNS.
Salve o registro.
Envie seu pedido de certificado DV, certificando-se de definir dcv_method
para dns-txt-token
.
É possível demonstrar controle sobre um domínio no seu pedido de certificado DV ao hospedar um arquivo fileauth.txt contendo o token da solicitação em um local predeterminado no seu site. Certifique-se de evitar alguns dos erros mais comuns ao usar File Auth.
Depois que o arquivo está disponível no seu site, é possível solicitar o seu certificado DV.
Certifique-se de definir o dcv_method
valor para http-token
ao usar File Auth para o seu token de solicitação.
Abra um editor de texto (como um Bloco de Notas) e cole no token da solicitação.
Salve o arquivo como fileauth.txt.
Disponibilize o arquivo no seu site neste local (crie diretórios conforme necessários):
http://
[domain.name]
/.well-known/pki-validation/fileauth.txt
Em servidores baseados em Windows, a pasta “well-known” deve ser criada através da linha de comando: mkdir .well-known
Envie seu pedido de certificado DV, certificando-se de definir dcv_method
para http-token
.
Depois de colocar o token da solicitação, você estará pronto para enviar sua solicitação de pedidos de certificados DV. Isso é feito com um POST ao ponto de extremidade Order DV SSL .
Um POST bem-sucedido a este ponto de extremidade retornará um código de resposta HTTP 201 Created. Se todos os requisitos de emissão imediata forem cumpridos, a cadeia completa de certificados é retornada no corpo de resposta.
Ao fazer o seu pedido de certificado DV, certifique-se de que o valor dcv_method
corresponde ao local do token da solicitação.
Se qualquer um dos pré-requisitos estiverem ausentes, a emissão imediata não acontecerá. Em vez de receber a cadeia completa de certificados, você receberá o corpo de resposta do pedido Order DV SSL padrão.
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>"
}
]
}