Antes que a DigiCert possa emitir um certificado DV, você deve demonstrar controle sobre os domínios incluídos na solicitação de certificado.
Para automatizar a instalação do certificado DV, use a integração DNS para provar seu controle sobre os domínios em sua solicitação de certificado DV. Para este método DCV, você deve criar uma integração DNS antes de enviar a solicitação.
Sua integração DNS permite que os serviços de automação da DigiCert usem suas credenciais para colocar o desafio DNS no servidor DNS e concluir a verificação de validação. O desafio DNS é gerado automaticamente como parte do processo de automação. Depois que a validação do domínio for concluída, a automação será bem-sucedida e instalará o certificado DV.
Você pode criar uma integração de DNS usando um provedor de DNS compatível ou um script de DNS personalizado.
Exemplo: Desafio DNS
example.com,example1.com,example2.com dns-txt-token 342893284294sfjdkfjshfCOPY
Verifique se o balanceador de carga de destino foi adicionado ao sensor. Consulte Verifique e finalize a configuração do sensor.
Use um provedor de DNS compatível. Consulte Visualize provedores de DNS compatíveis com automação abaixo.
Faça login no host do sensor.
Vá para o diretório CLI do sensor.
cd install_dir/cli
Onde install_dir é o diretório de instalação do sensor.
Execute o comando
listsupporteddns
.Windows:
listsupporteddns.bat
Linux:
./listsupporteddns.sh
Rota 53 da Amazônia |
Azure |
Cloudflare |
CloudXNS |
Digital Ocean |
DNS Trust Manager (DNS Made Easy) |
DreamHost |
GoogleDNS |
Go Daddy |
NS1 |
OVH |
RFC2136 |
Sakura Cloud |
Faça login no host do sensor.
Vá para o diretório CLI do sensor.
cd install_dir/cli
Onde install_dir é o diretório de instalação do sensor.
Execute o comando
adddnsintegration
.Windows:
adddnsintegration.bat -type <dns_provider_name>
Linux:
./adddnsintegration.sh -type <dns_provider_name>
Quando você digita o comando, uma série de prompts é exibida para cada provedor. Forneça as informações e pressione Enter.
Exemplo: adddnsintegration.bat -type route53
C:\Program Files\DigiCert\DigiCert sensor\cli>adddnsintegration.bat -type route53 Sensor CLI. Copyright 2023, DigiCert Inc. Add a DNS integration to automate DV certificates. Enter alias:Route53Valid Access key id:AKIAZC26PJRAX775JVKE Secret key: Confirm secret key: DNS integration route53 added. After adding the DNS integration, go back to CertCentral and link the integration to the load balancer where you want to automate a DV certificate.
Antes de começar, crie um script DNS para o sistema operacional que você deseja automatizar a instalação do certificado DV. Você pode criar um script ou modificar um dos scripts de amostra para definir seu script.
Importante
A DigiCert recomenda colocar os scripts em um local padrão, como o diretório de instalação do sensor. Por exemplo: sensorinstalldir/localscripts/script-to-upload.bat
Para Windows, você precisa de dois scripts para provar seu controle sobre os domínios: Script DNS .bat script e postscript PowerShell incorporado (.ps1, .py, .ps ou qualquer outro formato).
Abra o Bloco de Notas ou qualquer outra ferramenta de edição de texto.
Defina as credenciais de login, desafio de DNS e códigos de saída.
Salve o arquivo com .ps1, .py, .ps ou qualquer outra extensão de sua escolha. Certifique-se de anotar o local.
Abra o Bloco de Notas ou qualquer outra ferramenta de edição de texto.
Defina o caminho do local do arquivo postscript do PowerShell, o argumento para passar o desafio DNS e os códigos de saída.
Salve o arquivo com a extensão .bat. Certifique-se de anotar o local.
Para Linux, você precisa de um script DNS .sh para comprovar o controle sobre os domínios.
Abra o Bloco de Notas ou qualquer outra ferramenta de edição de texto.
Defina as credenciais de login, desafio de DNS e códigos de saída.
Salve o arquivo com a extensão .sh. Certifique-se de anotar o local.
Faça login no host do sensor.
Vá para o diretório CLI do sensor.
cd install_dir/cli
Onde install_dir é o diretório de instalação do sensor.
Execute o comando
adddnsintegration
.Windows:
adddnsintegration.bat -type custom
Linux:
./adddnsintegration.sh -type custom
Quando você digita o comando, uma série de prompts é exibida. Forneça as informações e pressione Enter.
Exemplo: ./adddnsintegration.sh -type custom
[root@c7-sowjanya-124 cli]# ./adddnsintegration.sh -type custom Sensor CLI. Copyright 2023, DigiCert Inc. Add a DNS integration to automate DV certificates. Enter alias:CustomeDNS Script file path:/tmp/test.sh DNS integration custom added. After adding the DNS integration, go back to CertCentral and link the integration to the load balancer where you want to automate a DV certificate.
Cada programa que você inicia termina com um código de saída e o reporta ao sistema operacional. Um código de saída, ou às vezes conhecido como código de retorno, é o código retornado a um processo pai por um executável.
Código de saída | Descrição |
---|---|
0 | Execução bem-sucedida do script. |
1 | Falha ao executar o script por qualquer motivo. |
#ensure AWS PStools are installed incl
#https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up-windows.html
#Install-Module -Name AWS.Tools.Installer
#Install-AWSToolsModule AWS.Tools.Route53
#Set-AWSCredential -AccessKey <accesskey> -SecretKey <secretkey> -StoreAs TestDNSProfile
Import-Module AWSPowerShell
Function Set-R53Record {
# Entry parameters
Param (
[Parameter(Mandatory=$True)] [String]$Profile,
[Parameter(Mandatory=$True)][String]$Domain,
[Parameter(Mandatory=$True)][String]$Type,
[Parameter(Mandatory=$True)][String]$Name,
[Parameter(Mandatory=$True)][String]$Value,
[Int]$TTL = 300,
[String]$Comment
)
$DomainDot = $Domain + "."
# Create two objects for R53 update
$Change = New-Object Amazon.Route53.Model.Change
$Change.Action = "UPSERT"
# CREATE: Creates a resource record set that has the specified values.
# DELETE: Deletes an existing resource record set that has the specified values.
# UPSERT: If a resource record set doesn't already exist, AWS creates it. If it does, Route 53 updates it with values in the request.
$Change.ResourceRecordSet = New-Object Amazon.Route53.Model.ResourceRecordSet
$Change.ResourceRecordSet.Name = "$Name.$Domain"
$Change.ResourceRecordSet.Type = $Type
$Change.ResourceRecordSet.TTL = $TTL
# For TXT-based DNS challenges, value must be in quotes
$challengeValue = if ($Type -eq "TXT") {"""$Value"""} else {$Value}
$Change.ResourceRecordSet.ResourceRecords.Add(@{Value=$challengeValue})
# Get hosted zone
$HostedZone = Get-R53HostedZones -ProfileName $Profile| Where-Object { $DomainDot.EndsWith($_.Name) }
Write-Output "Found HostedZone:$HostedZone"
# Set final parameters and execute
$Parameters = @{
HostedZoneId = $HostedZone.Id
ChangeBatch_Change = $Change # Object
ChangeBatch_Comment = $Comment # "Edited A record"
}
return Edit-R53ResourceRecordSet -ProfileName $Profile @Parameters
}
if($args.Length -ne 1){
Write-Output "Args not found"
exit -1;
}
$fileInput = Get-Content $args[0]
if ($fileInput.Length -lt 3){
Write-Output "File not found"
exit -1;
}
$tempDomains = $fileInput[0].Split(",")
$challenge = $fileInput[2]
$domains = @()
foreach ($d in $tempDomains)
{
if ("$d" -ne "null")
{
Write-Output $d
$domains = $domains += $d
}
}
foreach ($domain in $domains)
{
Set-R53Record -Profile DNSProfileName -Domain $domain -Type "TXT" -Name "_dnsauth" -Value $challenge -TTL 86400 -Comment "DNS challenge for $domain"
}
echo "Invoking DNS script" pushd %~dp0 powershell.exe -File {DNSPostscriptPath} %* echo "Exit Code : %errorlevel%" set returnCode=%errorlevel% popd EXIT /B %returnCode%
Nota
%* determina o desafio do DNS. Ele recupera seus valores do postscript.
#!/usr/bin/bash
set_R53_Record(){
Profile=$1
Domain=$2
Type=$3
Name=$4
Value=$5
TTL=$6
Comment=$7
DomainDot="$Domain."
echo "Profile:$Profile Domain:$Domain"
HOSTEDZONEID=$(/usr/local/bin/aws route53 list-hosted-zones --profile $Profile | jq '.HostedZones | .[] | select(.Name|inside('\"$DomainDot\"')) | .Id' | tr -d '"')
cat > change-batch.json << EOL
{"Comment":"$Comment","Changes":[{"Action":"UPSERT","ResourceRecordSet":{"Name":"$Name.$Domain","Type":"$Type","TTL":$TTL,"ResourceRecords":[{"Value":"\"$Value\""}]}}]}
EOL
/usr/local/bin/aws route53 change-resource-record-sets --hosted-zone-id $HOSTEDZONEID --profile $Profile --change-batch file://change-batch.json
}
if [ "$#" -ne 1 ]; then
echo "Args not found"
exit -1;
fi
IFS=$'\n' read -d '' -r -a lines < $1
if [ ${#lines[@]} != 3 ]; then
echo "File not found"
exit -1;
fi
challenge=${lines[2]}
IFS=',' read -ra domains <<< "${lines[0]}"
for domain in "${domains[@]}"; do
set_R53_Record default $domain "TXT" "_dnsauth" $challenge 86400 "DNS challenge for $domain"
done
Comandos Windows e Linux para adicionar e configurar integrações ou provedores de DNS a sensores para automação de certificados DV em balanceadores de carga.
Comando | Sintaxe | Descrição |
---|---|---|
Windows: |
| Adicione uma integração DNS para automatizar certificados DV. |
Linux: |
| |
Windows: | - | Veja a lista completa de provedores de DNS suportados. |
Linux: | ||
Windows: |
| Veja a lista de integrações DNS configuradas com o sensor. |
Linux: |
| |
Windows: |
| Atualize a integração DNS. |
Linux: |
| |
Windows: |
| Exclua a integração DNS do sensor. |
Linux: |
|