Voordat DigiCert een DV-certificaat kan uitgeven moet u aantonen dat u controle heeft over het domein dat wordt vermeld in uw certificaataanvraag.
Voor het automatiseren van de installatie van DV-certificaten gebruikt u DNS-integratie om uw controle over de domeinen in uw DV-certificaataanvraag aan te tonen. Voor deze DCV methode, moet u alvorens het verzoek in te dienen een DNS-integratie creëren.
Met uw DNS-integratie kan de DigiCert-automatiseringsdiensten uw referenties gebruiken om de DNS-uitdaging op de DNS-server te plaatsen en de validatie uit te voeren. De DNS-uitdaging wordt automatisch gegenereerd als onderdeel van het automatiseringsproces. Zodra de domeinvalidatie is voltooid, zal de automatisering slagen en het DV-certificaat installeren.
U kunt een DNS-integratie creëren met behulp van een ondersteunde DNS-provider of een aangepast DNS-script.
Een voorbeeld: DNS-uitdaging
example.com,example1.com,example2.com dns-txt-token 342893284294sfjdkfjshfCOPY
Verifieer of de load balancer in kwestie toegevoegd is aan de sensor. Zie De sensorconfiguratie verifiëren en afronden..
Gebruik een ondersteunde DNS-provider. Zie DNS-providers die automatisering ondersteunen bekijken hieronder.
Log in op de sensorhost.
Ga naar de CLI-map van de sensor.
cd install_dir/cli
Waar install_dir de installatiemap voor de sensor is.
Voer de opdracht
listsupporteddns
uit.Windows:
listsupporteddns.bat
Linux:
./listsupporteddns.sh
Amazon Route 53 |
Azure |
Cloudflare |
CloudXNS |
Digital Ocean |
DNS Trust Manager (DNS Made Easy) |
DreamHost |
GoogleDNS |
Go Daddy |
NS1 |
OVH |
RFC2136 |
Sakura Cloud |
Log in op de sensorhost.
Ga naar de CLI-map van de sensor.
cd install_dir/cli
Waar install_dir de installatiemap voor de sensor is.
Voer de opdracht
adddnsintegration
uit.Windows:
adddnsintegration.bat -type <dns_provider_name>
Linux:
./adddnsintegration.sh -type <dns_provider_name>
Wanneer u de opdracht invoert, verschijnen er een serie prompts voor elke provider. Verstrek de informatie en druk op Enter.
Een voorbeeld: 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.
Voordat u begint, maakt u een DNS-script voor het besturingssysteem waarmee u de installatie van het DV-certificaat wilt automatiseren. U kunt een script maken of een van de voorbeeldscripts aanpassen om uw script te definiëren.
Belangrijk
DigiCert beveelt aan de scripts op een standaard locatie te plaatsen, bijvoorbeeld de installatiemap van de sensor. Bijvoorbeeld: sensorinstalldir/localscripts/script-to-upload.bat
Voor Windows heeft u twee scripts nodig om te bewijzen dat u controle heeft over de domeinen: DNS .bat-script en ingesloten PowerShell-postscript (.ps1, .py, .ps, of enige andere opmaak).
Open Notepad of een ander tekstverwerkingsprogramma.
Definieer de referenties, DNS-uitdaging en afsluitcodes.
Sla het bestand op met .ps1, .py, .ps, of enige andere extensie van uw voorkeur. Vergeet niet de locatie te noteren.
Open Notepad of een ander tekstverwerkingsprogramma.
Definieer het bestandspad van het PowerShell-postScript, het argument om de DNS-uitdaging door te geven, en de afsluitcodes.
Sla het bestand op met de .bat-extensie. Vergeet niet de locatie te noteren.
Voor Linus heeft u een DNS .sh nodig om te bewijzen dat u controle heeft over de domeinen.
Open Notepad of een ander tekstverwerkingsprogramma.
Definieer de referenties, DNS-uitdaging en afsluitcodes.
Sla het bestand op met de .sh-extensie. Vergeet niet de locatie te noteren.
Log in op de sensorhost.
Ga naar de CLI-map van de sensor.
cd install_dir/cli
Waar install_dir de installatiemap voor de sensor is.
Voer de opdracht
adddnsintegration
uit.Windows:
adddnsintegration.bat -type custom
Linux:
./adddnsintegration.sh -type custom
Wanneer u de opdracht invoert, verschijnen er een serie prompts. Verstrek de informatie en druk op Enter.
Een voorbeeld: ./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.
Elk programma dat u start wordt beëindigd met een afsluitcode en rapporteert deze aan het besturingssysteem. Een afsluitcode, soms ook wel een retourcode genoemd, is de code die door een uitvoerbaar bestand wordt teruggegeven aan een bovenliggend proces.
Afsluitcode | Beschrijving |
---|---|
0 | Succesvolle uitvoering van het script. |
1 | Het script kon om een of andere reden niet worden uitgevoerd. |
#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%
Opmerking
%* bepaalt de DNS-uitdaging. Het haalt zijn waarden uit het 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
Windows- en Linux-opdrachten voor het toevoegen en configureren van DNS-integraties of -providers aan sensoren voor automatisering van DV-certificaten op load balancers.
Opdracht | Syntaxis | Beschrijving |
---|---|---|
Windows: |
| Een DNS-integratie toevoegen om DV-certificaten te automatiseren. |
Linux: |
| |
Windows: | - | Zie de volledige lijst van ondersteunde DNS-providers hieronder. |
Linux: | ||
Windows: |
| Bekijk de lijst van DNS-integraties die met de sensor zijn geconfigureerd. |
Linux: |
| |
Windows: |
| De DNS-integratie bijwerken. |
Linux: |
| |
Windows: |
| De DNS-integratie verwijderen van de sensor. |
Linux: |
|