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
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.
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
Amazon Route 53 |
Azure |
Cloudflare |
CloudXNS |
Digital Ocean |
DNS Trust Manager (DNS Made Easy) |
DreamHost |
GoogleDNS |
Go Daddy |
NS1 |
OVH |
RFC2136 |
Sakura Cloud |
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.
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
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).
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.
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.
Para Linux, necesita un script DNS .sh para demostrar el control sobre los dominios.
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.
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.
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. |
#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%
Nota
%* determina el desafío de DNS. Recupera su valor del 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
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: |
|