Erstellen einer DNS-Integration zur Automatisierung von DV-Zertifikaten auf Load Balancern
Bevor DigiCert Ihr DV-Zertifikat ausstellen kann, müssen Sie Ihre Kontrolle über die Domäne in Ihrem Zertifikatsantrag nachweisen.
Verwenden Sie zur Automatisierung der DV-Zertifikatsinstallation die DNS-Integration, um Ihre Kontrolle über die Domänen in Ihrer DV-Zertifikatsanforderung nachzuweisen. Für diese DCV-Methode müssen Sie eine DNS-Integration erstellen, bevor Sie die Anfrage senden können.
Ihre DNS-Integration ermöglicht es den DigiCert-Automatisierungsdiensten, Ihre Anmeldeinformationen zu verwenden, um die DNS-Abfrage auf dem DNS-Server zu platzieren und die Validierungsprüfung abzuschließen. Die DNS-Abfrage wird automatisch im Rahmen des Automatisierungsprozesses generiert. Nach Abschluss der Domänenvalidierung wird die Automatisierung erfolgreich durchgeführt und das DV-Zertifikat installiert.
Sie können eine DNS-Integration mithilfe eines unterstützten DNS-Anbieters oder eines angepassten DNS-Skripts erstellen.
Beispiel: DNS-Abfrage
example.com,example1.com,example2.com dns-txt-token 342893284294sfjdkfjshfCOPY
Bevor Sie beginnen
Überprüfen Sie, ob der Ziellastenausgleich zum Sensor hinzugefügt wurde. Siehe Sensorkonfiguration überprüfen und abschließen.
Verwenden Sie einen unterstützten DNS-Anbieter. Siehe Durch Automatisierung unterstützten DNS-Anbietern anzeigen unten.
Durch Automatisierung unterstützten DNS-Anbietern anzeigen
Melden Sie sich beim Sensor-Host an.
Gehen Sie ins CLI-Verzeichnis des Sensors.
cd install_dir/cli
Wobei install_dir das Installationsverzeichnis für den Sensor ist.
Führen Sie den Befehl
listsupporteddns
aus.Windows:
listsupporteddns.bat
Linux:
./listsupporteddns.sh
Hier ist die Liste der von der Automatisierung unterstützten DNS-Anbieter.
Amazon Route 53 |
Azure |
Cloudflare |
CloudXNS |
Digital Ocean |
DNS Trust Manager (DNS Made Easy) |
DreamHost |
GoogleDNS |
Go Daddy |
NS1 |
OVH |
RFC2136 |
Sakura Cloud |
Erstellen einer DNS-Integration mit einem DNS-Anbieter
Melden Sie sich beim Sensor-Host an.
Navigieren Sie zum CLI-Verzeichnis des Sensors.
cd install_dir/cli
Wobei install_dir das Installationsverzeichnis für den Sensor ist.
Führen Sie den Befehl
adddnsintegration
aus.Windows:
adddnsintegration.bat -type <dns_provider_name>
Linux:
./adddnsintegration.sh -type <dns_provider_name>
Wenn Sie den Befehl eingeben, erscheint eine Reihe von Eingabeaufforderungen für jeden Anbieter. Geben Sie die Informationen ein, und drücken Sie die Eingabetaste.
Beispiel: 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.
Erstellen einer DNS-Integration mit einem angepassten DNS-Skript
Bevor Sie beginnen
Erstellen Sie vor dem Start ein DNS-Skript für das Betriebssystem, auf dem Sie die DV-Zertifikatsinstallation automatisieren möchten. Sie können ein Skript erstellen oder eines der Beispielskripte ändern, um Ihr Skript zu definieren.
Wichtig
DigiCert empfiehlt, die Skripte an einem Standardspeicherort abzulegen, z. B. im Installationsverzeichnis des Sensors. Beispiel: sensorinstalldir/localscripts/script-to-upload.bat
Windows DNS-Skripte
Für Windows benötigen Sie zwei Skripte, um Ihre Kontrolle über die Domänen zu beweisen: Ein DNS-Skript (.bat) und ein eingebettetes Postscript (.ps1,.py,.ps oder jedes andere Format).
Ein eingebettetes DNS PowerShell-Postscript erstellen
Öffnen Sie Notepad oder ein anderes Textbearbeitungstool.
Definieren Sie die Anmeldedaten, die DNS-Abfrage und die Exit-Codes.
Speichern Sie die Datei mit.ps1,.py,.ps oder einer anderen Erweiterung Ihrer Wahl. Achten Sie darauf, den Speicherort zu notieren.
DNS-Skript erstellen
Öffnen Sie Notepad oder ein anderes Textbearbeitungstool.
Definieren Sie den Pfad für den Speicherort der PowerShell Postscript-Datei, das Argument zur Übergabe der DNS-Abfrage und die Exit-Codes.
Speichern Sie die Datei mit der Erweiterung .bat. Achten Sie darauf, den Speicherort zu notieren.
Linux DNS-Skript
Für Linux benötigen Sie ein DNS.sh-Skript, um Ihre Kontrolle über die Domänen zu beweisen:
Ein DNS-Skript erstellen
Öffnen Sie Notepad oder ein anderes Textbearbeitungstool.
Definieren Sie die Anmeldedaten, die DNS-Abfrage und die Exit-Codes.
Speichern Sie die Datei mit der Erweiterung .sh. Achten Sie darauf, den Speicherort zu notieren.
Erstellen Sie eine benutzerdefinierte DNS-Integration
Melden Sie sich beim Sensor-Host an.
Navigieren Sie zum CLI-Verzeichnis des Sensors.
cd install_dir/cli
Wobei install_dir das Installationsverzeichnis für den Sensor ist.
Führen Sie den Befehl
adddnsintegration
aus.Windows:
adddnsintegration.bat -type custom
Linux:
./adddnsintegration.sh -type custom
Wenn Sie den Befehl eingeben, erscheint eine Reihe von Eingabeaufforderungen. Geben Sie die Informationen ein, und drücken Sie die Eingabetaste.
Beispiel: ./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.
Exit-Codes
Jedes Programm, das Sie starten, wird mit einem Exit-Code beendet und dem Betriebssystem gemeldet. Ein Exit-Code, manchmal auch als Return-Code bekannt, ist der Code, der von einer ausführbaren Datei an einen übergeordneten Prozess zurückgegeben wird.
Exit-Code | Beschreibung |
---|---|
0 | Erfolgreiche Ausführung des Skripts. |
1 | Das Skript konnte aus irgendeinem Grund nicht ausgeführt werden. |
Beispielskripte
AWS – DNS-PowerShell-Postscript (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 # 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" }
DNS.bat-Skript
echo "Invoking DNS script" pushd %~dp0 powershell.exe -File {DNSPostscriptPath} %* echo "Exit Code : %errorlevel%" set returnCode=%errorlevel% popd EXIT /B %returnCode%
Anmerkung
%* bestimmt die DNS-Abfrage. Es bezieht seine Werte aus der Postscript.
AWS – DNS.sh-Skript
#!/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
CLI-Befehle für die DNS-Integration
Windows- und Linux-Befehle zum Hinzufügen und Konfigurieren von DNS-Integrationen oder Providern zu Sensoren für die Automatisierung von DV-Zertifikaten auf Load Balancern.
Befehl | Syntax | Beschreibung |
---|---|---|
Windows: |
| Fügen Sie eine DNS-Integration zur Automatisierung von DV-Zertifikaten hinzu. |
Linux: |
| |
Windows: | - | Zeigen Sie die vollständige Liste der unterstützten Systeme an. |
Linux: | ||
Windows: |
| Zeigen Sie die Liste der mit dem Sensor konfigurierten DNS-Integrationen an. |
Linux: |
| |
Windows: |
| Aktualisieren Sie die DNS-Integration. |
Linux: |
| |
Windows: |
| Löschen Sie die DNS-Integration vom Sensor. |
Linux: |
|