Certbot: Intentando que Certbot instale un nuevo certificado con HSTS

Creado en 8 jul. 2016  ·  4Comentarios  ·  Fuente: certbot/certbot

Hola,

Algunos antecedentes:
Entonces, estoy usando InterWorx y me encuentro con este problema en el que ./certbot-auto --hsts no funciona ni ./certbot-auto certonly --standalone después de detener temporalmente httpd en CentOS 7 x64 . También tenga en cuenta que no es un proxy. Esto es en un VPS Xen. También he confirmado que telnet al puerto 443 funciona para este servidor, por lo que no debería haber problemas de conexión ...

IW dev / support señaló que HSTS podría estar causando que Certbot-auto falle en helmsgate.eidolonhost.com porque eidolonhost.com está precargado a través de la lista de precarga de HSTS (que ahora solicité la eliminación para poder solucionar este problema ... .) pero esperaba que hubiera alguna respuesta en la que pueda forzar la instalación de un certificado LE.

Registros relevantes:

[root<strong i="15">@helmsgate</strong> letsencrypt]# cat letsencrypt.log
2016-07-08 00:32:50,790:DEBUG:certbot.main:Root logging level set at 30
2016-07-08 00:32:50,791:INFO:certbot.main:Saving debug log to /var/log/letsencrypt/letsencrypt.log
2016-07-08 00:32:50,791:DEBUG:certbot.main:certbot version: 0.8.1
2016-07-08 00:32:50,791:DEBUG:certbot.main:Arguments: ['--hsts']
2016-07-08 00:32:50,791:DEBUG:certbot.main:Discovered plugins: PluginsRegistry(PluginEntryPoint#apache,PluginEntryPoint#webroot,PluginEntryPoint#null,PluginEntryPoint#manual,PluginEntryPoint#standalone)
2016-07-08 00:32:50,801:DEBUG:certbot.plugins.selection:Requested authenticator None and installer None
2016-07-08 00:32:54,292:DEBUG:certbot.plugins.selection:Multiple candidate plugins: * apache
Description: Apache Web Server - Alpha
Interfaces: IAuthenticator, IInstaller, IPlugin
Entry point: apache = certbot_apache.configurator:ApacheConfigurator
Initialized: <certbot_apache.configurator.ApacheConfigurator object at 0x1fe7750>
Prep: True

* webroot
Description: Place files in webroot directory
Interfaces: IAuthenticator, IPlugin
Entry point: webroot = certbot.plugins.webroot:Authenticator
Initialized: <certbot.plugins.webroot.Authenticator object at 0x28da690>
Prep: True

* standalone
Description: Automatically use a temporary webserver
Interfaces: IAuthenticator, IPlugin
Entry point: standalone = certbot.plugins.standalone:Authenticator
Initialized: <certbot.plugins.standalone.Authenticator object at 0x28da390>
Prep: True
2016-07-08 00:33:15,830:DEBUG:certbot.plugins.selection:Selected authenticator <certbot.plugins.standalone.Authenticator object at 0x28da390> and installer None
2016-07-08 00:33:22,034:DEBUG:root:Sending GET request to https://acme-v01.api.letsencrypt.org/directory. args: (), kwargs: {}
2016-07-08 00:33:22,038:INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
2016-07-08 00:33:33,034:DEBUG:certbot.main:Exiting abnormally:
Traceback (most recent call last):
  File "/root/.local/share/letsencrypt/bin/letsencrypt", line 11, in <module>
    sys.exit(main())
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/certbot/main.py", line 744, in main
    return config.func(config, plugins)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/certbot/main.py", line 550, in obtain_cert
    le_client = _init_le_client(config, auth, installer)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/certbot/main.py", line 360, in _init_le_client
    acc, acme = _determine_account(config)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/certbot/main.py", line 345, in _determine_account
    config, account_storage, tos_cb=_tos_cb)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/certbot/client.py", line 118, in register
    acme = acme_from_config_key(config, key)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/certbot/client.py", line 42, in acme_from_config_key
    return acme_client.Client(config.server, key=key, net=net)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/acme/client.py", line 63, in __init__
    self.net.get(directory).json())
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/acme/client.py", line 631, in get
    self._send_request('GET', url, **kwargs), content_type=content_type)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/acme/client.py", line 613, in _send_request
    response = self.session.request(method, url, *args, **kwargs)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/requests/sessions.py", line 468, in request
    resp = self.send(prep, **send_kwargs)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/requests/sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/requests/adapters.py", line 437, in send
    raise ConnectionError(e, request=request)
ConnectionError: HTTPSConnectionPool(host='acme-v01.api.letsencrypt.org', port=443): Max retries exceeded with url: /directory (Caused by NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x3303e10>: Failed to establish a new connection: [Errno -2] Name or service not known',))

Editar: tenga en cuenta que helmsgate.eidolonhost.com ahora está usando un certificado SSL válido de Comodo. Al menos me permitirá reemplazar el certificado SSL con Let's Encrypt en el futuro.

Edit2: parece que todavía persiste para un dominio de cliente, en este caso, dragonfox.net con exactamente el mismo error. El cliente está usando CloudFlare en este caso, sin embargo, no sé si eso es relevante para que el cliente no pueda instalar nuevos certificados SSL.

certbot-auto more-info

Comentario más útil

@bmw ,

Gracias por indicarme el camino al problema.

Resulta que el servidor no sabía quién era acme-v01.api.letsencrypt.org .

[root<strong i="10">@helmsgate</strong> ~]# curl https://acme-v01.api.letsencrypt.org/directory
curl: (6) Could not resolve host: acme-v01.api.letsencrypt.org; Name or service not known
[root<strong i="11">@helmsgate</strong> ~]# nano /etc/resolv.conf
[root<strong i="12">@helmsgate</strong> ~]# curl https://acme-v01.api.letsencrypt.org/directory
{
  "new-authz": "https://acme-v01.api.letsencrypt.org/acme/new-authz",
  "new-cert": "https://acme-v01.api.letsencrypt.org/acme/new-cert",
  "new-reg": "https://acme-v01.api.letsencrypt.org/acme/new-reg",
  "revoke-cert": "https://acme-v01.api.letsencrypt.org/acme/revoke-cert"
}[root<strong i="13">@helmsgate</strong> ~]# ^C
[root<strong i="14">@helmsgate</strong> ~]#

Editar: Efectivamente, tan pronto como agrego nameserver 8.8.8.8 a /etc/resolv.conf , inmediatamente recupera la configuración de DNS de Let's Encrypt y ahora puede emitir certificados SSL.

Todos 4 comentarios

Entonces, el problema aquí no es que Let's Encrypt CA no pueda conectarse a su servidor, es que Certbot no puede conectarse a Let's Encrypt. El cliente está fallando es donde primero intentamos establecer una conexión con la CA.

¿Qué sucede si ejecuta curl https://acme-v01.api.letsencrypt.org/directory en el sistema en el que tiene este problema?

@bmw ,

Gracias por indicarme el camino al problema.

Resulta que el servidor no sabía quién era acme-v01.api.letsencrypt.org .

[root<strong i="10">@helmsgate</strong> ~]# curl https://acme-v01.api.letsencrypt.org/directory
curl: (6) Could not resolve host: acme-v01.api.letsencrypt.org; Name or service not known
[root<strong i="11">@helmsgate</strong> ~]# nano /etc/resolv.conf
[root<strong i="12">@helmsgate</strong> ~]# curl https://acme-v01.api.letsencrypt.org/directory
{
  "new-authz": "https://acme-v01.api.letsencrypt.org/acme/new-authz",
  "new-cert": "https://acme-v01.api.letsencrypt.org/acme/new-cert",
  "new-reg": "https://acme-v01.api.letsencrypt.org/acme/new-reg",
  "revoke-cert": "https://acme-v01.api.letsencrypt.org/acme/revoke-cert"
}[root<strong i="13">@helmsgate</strong> ~]# ^C
[root<strong i="14">@helmsgate</strong> ~]#

Editar: Efectivamente, tan pronto como agrego nameserver 8.8.8.8 a /etc/resolv.conf , inmediatamente recupera la configuración de DNS de Let's Encrypt y ahora puede emitir certificados SSL.

¡Me alegro de haber podido ayudar! Entonces, ¿se ha resuelto este problema?

¡Sí! Ahora puedo obtener el complemento IW LE para emitir certificados para los dominios de los clientes. He reproducido este comportamiento para varios dominios de clientes y, en todos los casos, está arreglado.

Seguiré adelante y cerraré este problema. Gracias de nuevo por señalar el camino. :)

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

zwl1619 picture zwl1619  ·  37Comentarios

teewhey picture teewhey  ·  35Comentarios

barshinoff picture barshinoff  ·  37Comentarios

yardenac picture yardenac  ·  47Comentarios

rolandshoemaker picture rolandshoemaker  ·  50Comentarios