Crear una integración de DNS para automatizar los certificados DV en los equilibradores de carga
Antes de que DigiCert pueda emitir un certificado DV, usted debe demostrar que tiene el control de los dominios incluidos en la solicitud del certificado.
Para automatizar la instalaciones de certificados DV, use la integración de DNS para demostrar su control sobre los dominios en su solicitud de certificado DV. Para este método DCV, debe crear una integración de DNS antes de enviar la solicitud.
Su integración de DNS permite a los servicios de automatización de DigiCert usar sus credenciales para realizar el desafío de DNS en el servidor DNS y completa la verificación de validación. El desafío de DNS se genera de manera automática como parte del proceso de automatización. Una vez que la validación del dominio se complete, la automatización se realizará con éxito y se instalará el certificado DV.
Puede crear una integración DNS usando un proveedor de DNS admitido o un script de DNS personalizado.
Ejemplo: Desafíos de DNS
example.com,example1.com,example2.com dns-txt-token 342893284294sfjdkfjshfCOPY
Antes de comenzar
Verifique que el equilibrador de carga objetivo se agregó al sensor. Consulte Verificar y finalizar la configuración del sensor.
Use un proveedor de DNS admitido. Consulte Ver proveedores de DNS admitidos para la automatización a continuación.
Ver proveedores de DNS admitidos para la automatización
Inicie sesión en el host del sensor.
Vaya al directorio de CLI del sensor.
cd install_dir/cli
En el cual install_dir es el directorio de instalación para el sensor.
Ejecute el comando
listsupporteddns
.Windows:
listsupporteddns.bat
Linux:
./listsupporteddns.sh
Esta es una lista de proveedores de DNS admitidos para la automatización.
Amazon Route 53 |
Azure |
Cloudflare |
CloudXNS |
Digital Ocean |
DNS Trust Manager (DNS Made Easy) |
DreamHost |
GoogleDNS |
Go Daddy |
NS1 |
OVH |
RFC2136 |
Sakura Cloud |
Crear una integración de DNS con un proveedor de DNS
Inicie sesión en el host del sensor.
Vaya al directorio de CLI del sensor.
cd install_dir/cli
En el cual install_dir es el directorio de instalación para el sensor.
Ejecute el comando
adddnsintegration
.Windows:
adddnsintegration.bat -type <dns_provider_name>
Linux:
./adddnsintegration.sh -type <dns_provider_name>
Cuando ingresa el comando, aparece una serie de indicaciones para cada proveedor. Brinde la información y presione Intro.
Ejemplo: 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.
Crear una integración de DNS con un script de DNS personalizado
Antes de comenzar
Antes de comenzar, cree un script de DNS para el sistema operativo para el que desea automatizar la instalación de certificados DV. Puede creer un script o modificar uno de los script de muestra para definir su script.
Importante
DigiCert recomienda colocar los scripts en una ubicación predeterminada, como el directorio de instalación del sensor. Por ejemplo: sensorinstalldir/localscripts/script-to-upload.bat
Scripts de DNS de Windows
Para Windows, necesita dos scripts para demostrar su control sobre los dominios: Script .bat de DNS y el postscript PowerShell integrado (.ps1, .py, .ps o cualquier otro formato).
Crear un postscript PowerShell de DNS integrado
Abra Notepad o cualquier otra herramienta de edición de texto.
Defina las credenciales de inicio de sesión, el desafío de DNS y los códigos de salida.
Guarde el archivo con .ps1, .py, .ps o cualquier otra extensión de su elección. Asegúrese de tomar nota de la ubicación.
Crear un script de DNS
Abra Notepad o cualquier otra herramienta de edición de texto.
Defina la ruta de ubicación del archivo de postscript de PowerShell, el argumento para superar el desafío de DNS y los códigos de salida.
Guarde el archivo con la extensión .bat. Asegúrese de tomar nota de la ubicación.
Script de DNS de Linux
Para Linux, necesita un script DNS .sh para demostrar el control sobre los dominios.
Crear un script de DNS
Abra Notepad o cualquier otra herramienta de edición de texto.
Defina las credenciales de inicio de sesión, el desafío de DNS y los códigos de salida.
Guarde el archivo con la extensión .sh. Asegúrese de tomar nota de la ubicación.
Crear una integración de DNS personalizada
Inicie sesión en el host del sensor.
Vaya al directorio de CLI del sensor.
cd install_dir/cli
En el cual install_dir es el directorio de instalación para el sensor.
Ejecute el comando
adddnsintegration
.Windows:
adddnsintegration.bat -type custom
Linux:
./adddnsintegration.sh -type custom
Cuando ingresa el comando, aparece una serie de indicaciones. Brinde la información y presione Intro.
Ejemplo: ./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.
Códigos de salida
Cada programa que usted empieza termina con un código de salida y se reporta al sistema operativo. Un código de salida, o a veces conocido como un código de retorno, es el código que un ejecutable devuelve a un proceso primario.
Código de salida | Descripción |
---|---|
0 | Ejecución correcta del script. |
1 | Error en la ejecución del script por cualquier razón. |
Scripts de muestra
AWS, postscript de DNS PowerShell (.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" }
Script .bat de DNS
echo "Invoking DNS script" pushd %~dp0 powershell.exe -File {DNSPostscriptPath} %* echo "Exit Code : %errorlevel%" set returnCode=%errorlevel% popd EXIT /B %returnCode%
Nota
%* determina el desafío de DNS. Recupera su valor del postscript.
AWS, script .sh de DNS
#!/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 de CLI de integración de DNS
Comandos de Windows y Linux para agregar y configurar las integraciones o proveedores de DNS para sensores para la automatización de certificados DV en equilibradores de carga.
Comando | Sintaxis | Descripción |
---|---|---|
Windows: |
| Agregar una integración de DNS para automatizar los certificados DV. |
Linux: |
| |
Windows: | - | Ver la lista completa de proveedores de DNS admitidos. |
Linux: | ||
Windows: |
| Ver la lista de integraciones de DNS configuradas con el sensor. |
Linux: |
| |
Windows: |
| Actualizar la integración de DNS. |
Linux: |
| |
Windows: |
| Eliminar la integración de DNS desde el sensor. |
Linux: |
|