Dois problemas relacionados que estamos enfrentando para renovações automatizadas de certificados:
-Auto-ssl pensa que um domínio é válido, enquanto o whois mostra que expirou há vários meses e está em status de resgate.
-allow_domain não parece ser executado para renovação automática.
Domínio expirado (não resolve em nenhum lugar)
Dados WHOIS:
Data de expiração do registro: 22-05-2018T01:19:25Z
Status do domínio: RedemptionPeriod https://icann.org/epp#redemptionPeriod
2018/07/06 17:58:11 [error] 3233#3233: *42151 [lua] lets_encrypt.lua:41: issue_cert(): auto-ssl: dehydrated failed: env HOOK_SECRET=74b9b9da3dc257b6f00948fc00b9117beab9fb356fb129a22dd6893c18a9cca3 HOOK_SERVER_PORT=8999 /usr/local/openresty/luajit/bin/resty-auto-ssl/dehydrated --cron --accept-terms --no-lock --domain www.expireddomain.com --challenge http-01 --config /etc/resty-auto-ssl/letsencrypt/config --hook /usr/local/openresty/luajit/bin/resty-auto-ssl/letsencrypt_hooks status: 256 out: # INFO: Using main config file /etc/resty-auto-ssl/letsencrypt/config
Processing www.expireddomain.com
+ Checking domain name(s) of existing cert... unchanged.
+ Checking expire date of existing cert...
+ Valid till Aug 6 00:52:58 2018 GMT (Less than 30 days). Renewing!
+ Signing domains...
+ Generating private key...
+ Generating signing request...
+ Requesting authorization for www.expireddomain.com...
+ 1 pending challenge(s)
+ Deploying challenge tokens...
+ Responding to challenge for www.expireddomain.com authorization...
Invalid challenge: DOMAIN=www.expireddomain.com RESPONSE={
"type": "http-01",
"status": "invalid",
"error": {
"type": "urn:acme:error:dns",
"detail": "DNS problem: NXDOMAIN looking up A for www.expireddomain.com",
"status": 400
},
"uri": "https://acme-v01.api.letsencrypt.org/acme/challenge/bP_FGFj0H6027YXEVXwUTr0hgPYU3p4ux70J03YgJcg/5508927882",
"token": "xBzqCypg7iDi6AUTXlmc65C8MtifK14wAQOjh76Z4ok",
"keyAuthorization": "xBzqCypg7iDi6AUTXlmc65C8MtifK14wAQOjh76Z4ok.BmCf6H2DAkLb8K_367ROMmY9nfcTaEk0ovuF_zhtU1M",
"validationRecord": [
{
"url": "http://www.expireddomain.com/.well-known/acme-challenge/xBzqCypg7iDi6AUTXlmc65C8MtifK14wAQOjh76Z4ok",
"hostname": "www.expireddomain.com",
"port": "80"
}
]
Allow_domain parece não funcionar em renovações automáticas
-Este é um problema quando um domínio foi movido para outro provedor e não resolve mais para nossos servidores
-Se allow_domain fosse executado em renovações automatizadas de certificados, também resolveria o problema de domínio expirado, porque nosso script allow_domain verifica a resolução de DNS. O que obviamente falha, conforme relatado por letsencrypt.
Eu tive o mesmo problema, pois passamos por muitos domínios e adicionei o código abaixo à funçãorene_check_cert em renovação.lua para verificar o domínio antes de permitir. Além disso, também excluo domínios expirados para evitar que isso aconteça sempre.
-- Verify domain before we issue a renewal request.
local allow_domain = auto_ssl_instance:get("allow_domain")
if not allow_domain(domain) then
ngx.log(ngx.NOTICE, "auto-ssl: domain not allowed - not renewing - ", domain)
return
end
Obrigado @brianlund.
Seria legal se o refresh_check_cert fosse configurável para evitar ter que manter nosso próprio fork.
Sem problemas @edeis53
Eu tenho pensado em fazer uma solicitação de pull com isso e o suporte para excluir certificados expirados, vou ver se não consigo fazer isso.
@brianlund
É possível remover domínios com erro de DNS na renovação? Detalhes em #173
@prionkor isso não resolve o seu problema? https://github.com/GUI/lua-resty-auto-ssl/pull/128
Eu acho que isso deve ser resolvido na v0.13.0 entre a combinação de #176 e #128. Desculpe a demora em resolver isso! Então, vou fechar isso, mas deixe-me saber se ainda houve algum problema pendente com o comportamento na nova versão.
Instalado e testando agora! muito obrigado por mesclar e liberar.
Comentários muito úteis
Sem problemas @edeis53
Eu tenho pensado em fazer uma solicitação de pull com isso e o suporte para excluir certificados expirados, vou ver se não consigo fazer isso.