Crea un’integrazione DNS per automatizzare i certificati DV sui bilanciamenti del carico
Prima che DigiCert possa emettere un certificato DV, devi dimostrare il controllo sui domini inclusi nella richiesta di certificato.
Per automatizzare l’installazione del certificato DV, usa l’integrazione DNS per dimostrare il controllo sui domini nella tua richiesta di certificato DV. Per questo metodo DCV, devi creare un’integrazione DNS prima di inviare la richiesta.
La tua integrazione DNS consente ai servizio di automazione DigiCert di utilizzare le tue credenziali per posizionare la DNS challenge sul server DNS e completare il controllo convalida. La DNS challenge viene generata automaticamente come parte del processo di automazione. Una volta completata la convalida dominio, l’automazione si completerà correttamente e installerà il certificato DV.
Puoi creare un’integrazione DNS usando un DNS provider supportato o uno script DNS personalizzato.
Esempio: DNS challenge
example.com,example1.com,example2.com dns-txt-token 342893284294sfjdkfjshfCOPY
Prima di iniziare
Verifica che il bilanciamento del carico target sia stato aggiunto al sensore. Consulta Verifica e finalizza la configurazione sensore.
Usa un provider DNS supportato. Consulta Visualizza i provider DNS supportati da automazione di seguito.
Visualizza i provider DNS supportati da automazione
Accedi all’host sensore.
Vai alla directory CLI sensore.
cd install_dir/cli
Dove install_dir è la directory di installazione per il sensore.
Esegui il comando
listsupporteddns
.Windows:
listsupporteddns.bat
Linux:
./listsupporteddns.sh
Ecco l’elenco dei provider DNS supportati da automazione.
Amazon Route 53 |
Azure |
Cloudflare |
CloudXNS |
Digital Ocean |
DNS Trust Manager (DNS Made Easy) |
DreamHost |
GoogleDNS |
Go Daddy |
NS1 |
OVH |
RFC2136 |
Sakura Cloud |
Crea un’integrazione DNS con un provider DNS
Accedi all’host sensore.
Vai alla directory CLI sensore.
cd install_dir/cli
Dove install_dir è la directory di installazione per il sensore.
Esegui il comando
adddnsintegration
.Windows:
adddnsintegration.bat -type <dns_provider_name>
Linux:
./adddnsintegration.sh -type <dns_provider_name>
Quando inserisci il comando, compare una serie di messaggi per ciascun provider. Fornisci le informazioni e premi Invio.
Esempio: 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.
Crea un’integrazione DNS con uno script DNS personalizzato
Prima di iniziare
Prima di iniziare, crea uno script DNS per il sistema operativo che vuoi per automatizzare l’installazione del certificato DV. Puoi creare uno script o modificare uno degli script campione per definire il tuo script.
Importante
DigiCert raccomanda di posizionare gli script in un posizione predefinita, come la directory di installazione del sensore. Ad esempio: sensorinstalldir/localscripts/script-to-upload.bat
Script DNS Windows
Per Windows, ti servono due script per dimostrare il controllo sui domini: Lo script DNS .bat e il postscript PowerShell nidificato (.ps1, .py, .ps o qualsiasi altro formato).
Crea il postscript PowerShell DNS nidificato
Apri Notepad o qualsiasi altro strumento di modifica testo.
Definisci le credenziali di login, DNS challenge e i codici di uscita.
Salva il file con .ps1, .py, .ps o qualsiasi altra estensione a scelta. Annota la posizione.
Crea script DNS
Apri Notepad o qualsiasi altro strumento di modifica testo.
Definisci il percorso della posizione del file di postscript PowerShell, l’argomento per superare la DNS challenge e i codici di uscita.
Salva il file con l’estensione .bat. Annota la posizione.
Script DNS Linux
Per Linux, ti serve uno script DNS .sh per dimostrare il controllo sui domini.
Crea uno script DNS
Apri Notepad o qualsiasi altro strumento di modifica testo.
Definisci le credenziali di login, DNS challenge e i codici di uscita.
Salva il file con l’estensione .sh. Annota la posizione.
Crea un’integrazione DNS personalizzata
Accedi all’host sensore.
Vai alla directory CLI sensore.
cd install_dir/cli
Dove install_dir è la directory di installazione per il sensore.
Esegui il comando
adddnsintegration
.Windows:
adddnsintegration.bat -type custom
Linux:
./adddnsintegration.sh -type custom
Quando inserisci il comando, compare una serie di messaggi. Fornisci le informazioni e premi Invio.
Esempio: ./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.
Codici di uscita
Ciascun programma che avvii termina con un codice di uscita e lo segnala la sistema operativo. Un codice di uscita, talvolta noto come codice di ritorno, è il codice restituito ad un processo principale da parte di un eseguibile.
Codice di uscita | Descrizione |
---|---|
0 | Esecuzione corretta dello script. |
1 | Impossibile eseguire lo script per qualsiasi motivo. |
Script campione
AWS - Postscript PowerShell DNS (.ps1)
#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 #$Change.ResourceRecordSet.ResourceRecords.Add(@{Value=$Value}) $Change.ResourceRecordSet.ResourceRecords.Add(@{Value=if ($Type -eq "TXT") {"""$Value"""} else {$Value}}) # 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"
Script DNS .bat
echo "Invoking DNS script" pushd %~dp0 powershell.exe -File {DNSPostscriptPath} %* echo "Exit Code : %errorlevel%" set returnCode=%errorlevel% popd EXIT /B %returnCode%
Nota
%* determina la DNS challenge. Recupera il suo valore dal postscript.
Script AWS - DNS .sh
#!/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
Comandi CLI di integrazione DNS
I comandi Window e Linux per l’aggiunta e la configurazione delle integrazioni DNS o dei provider ai sensori per l’automazione dei certificati DV sui bilanciamenti del carico.
Comando | Sintassi | Descrizione |
---|---|---|
Windows: |
| Aggiungi un’integrazione DNS per automatizzare i certificati DV. |
Linux: |
| |
Windows: | - | Visualizza l’elenco completo dei providers DNS supportati. |
Linux: | ||
Windows: |
| Visualizza l’elenco delle integrazioni DNS configurate con il sensore. |
Linux: |
| |
Windows: |
| Aggiorna l’integrazione DNS. |
Linux: |
| |
Windows: |
| Elimina l’integrazione DNS dal sensore. |
Linux: |
|