Давайте зашифруем DNS-запросы в состоянии PENDING
Я пытаюсь автоматически обновить свои сертификаты Let's encrypt. Для этого я использую certbot, который записывает запись TXT в мою запись DNS. К сожалению, это обновление находится в состоянии PENDING. Если я вручную обновляю запись TXT, когда certbot ожидает, все работает нормально. Что может быть причиной того, что эти обновления остаются в состоянии PENDING?
Примечание. Некоторые конфиденциальные данные заменены на <placeholders>.
{
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"status": {},
"authenticationInfo": {
"principalEmail": "dns-service-account@dns-hosting-<projectnr>.iam.gserviceaccount.com",
"serviceAccountKeyName": "//iam.googleapis.com/projects/dns-hosting-<projectnr>/serviceAccounts/dns-service-account@dns-hosting-<projectnr>.iam.gserviceaccount.com/keys/0437a910973f0bb3c13d95648ab0fc663aee9a63"
},
"requestMetadata": {
"callerIp": "<my-ip>",
"requestAttributes": {
"time": "2022-01-10T06:19:39.948727Z",
"auth": {}
},
"destinationAttributes": {}
},
"serviceName": "dns.googleapis.com",
"methodName": "dns.changes.create",
"authorizationInfo": [
{
"permission": "dns.resourceRecordSets.delete",
"granted": true,
"resourceAttributes": {}
}
],
"resourceName": "managedZones/<zone-nr>",
"request": {
"@type": "type.googleapis.com/cloud.dns.api.ChangesCreateRequest",
"change": {
"deletions": [
{
"rrdata": [
"\"PjtQVEKDNS5158RoD_e6xZ18-U45o8SzIu9Y8E2OXpo\""
],
"name": "_acme-challenge.<domain>.com.",
"ttl": 60,
"type": "TXT"
}
]
},
"managedZone": "<zone-nr>",
"project": "dns-hosting-<projectnr>"
},
"response": {
"change": {
"startTime": "2022-01-10T06:19:39.717Z",
"deletions": [
{
"rrdata": [
"\"PjtQVEKDNS5158RoD_e6xZ18-U45o8SzIu9Y8E2OXpo\""
],
"ttl": 60,
"name": "_acme-challenge.<domain>.com.",
"type": "TXT"
}
],
"status": "PENDING",
"id": "31"
},
"@type": "type.googleapis.com/cloud.dns.api.ChangesCreateResponse"
} }, "insertId": "-gct1lxe6d30o", "resource": {
"type": "dns_managed_zone",
"labels": {
"location": "global",
"project_id": "dns-hosting-<projectnr>",
"zone_name": "<zone-nr>"
} }, "timestamp": "2022-01-10T06:19:39.711566Z", "severity": "NOTICE", "logName": "projects/dns-hosting-<projectnr>/logs/cloudaudit.googleapis.com%2Factivity", "receiveTimestamp": "2022-01-10T06:19:40.311274041Z" }
1 ответ
Я не знаю подробностей программного обеспечения, это просто команда certbot с правильными аргументами для обновления сертификата. Для этого программное обеспечение создает запись txt в DNS, а затем проверяет, существует ли запись txt. Это доказывает, что я владелец с правильными разрешениями. После этого новые сертификаты выпускаются. Поскольку создание/обновление записей txt остается в состоянии ожидания, certbot не может выполнить проверку и завершится ошибкой. Если я обновляю запись вручную через Google DNS, пока certbot дремлет для распространения, все работает нормально. Единственная проблема заключается в том, что эти действия не выполняются, а остаются в состоянии ожидания.
Используемая команда:
certbot certonly --dns-google --dns-google-propagation-seconds 120 --dns-google-credentials ~/bin/dns-hosting-331818-0437a910973f.json -d "*.famderidder.com"