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
Ü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.
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
Amazon Route 53 |
Azure |
Cloudflare |
CloudXNS |
Digital Ocean |
DNS Trust Manager (DNS Made Easy) |
DreamHost |
GoogleDNS |
Go Daddy |
NS1 |
OVH |
RFC2136 |
Sakura Cloud |
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 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
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).
Ö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.
Ö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.
Für Linux benötigen Sie ein DNS.sh-Skript, um Ihre Kontrolle über die Domänen zu beweisen:
Ö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.
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.
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. |
#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%
Anmerkung
%* bestimmt die DNS-Abfrage. Es bezieht seine Werte aus der 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- 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: |
|