Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ACME: revoke certificate on agreement update #579

Closed
stongo opened this issue Aug 1, 2016 · 13 comments
Closed

ACME: revoke certificate on agreement update #579

stongo opened this issue Aug 1, 2016 · 13 comments

Comments

@stongo
Copy link
Contributor

stongo commented Aug 1, 2016

Currently getting this error:
Provided agreement URL [https://letsencrypt.org/documents/LE-SA-v1.0.1-July-27-2015.pdf] does not match current agreement URL [https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf]"

Checking my acme.json the registration body has the older agreement. In this case, the certificate should be revoked and re-issued

@emilevauge emilevauge added the bug label Aug 1, 2016
@emilevauge
Copy link
Member

emilevauge commented Aug 1, 2016

Ouch. You are getting errors on renewing?

@raizyr
Copy link

raizyr commented Aug 1, 2016

it actually appears to be a fatal-error

traefik_1 | time="2016-08-01T19:44:32Z" level=fatal msg="Error creating TLS config acme: Error 400 - urn:acme:error:malformed - Provided agreement URL [https://letsencrypt.org/documents/LE-SA-v1.0.1-July-27-2015.pdf] does not match current agreement URL [https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf]"

@emilevauge
Copy link
Member

emilevauge commented Aug 1, 2016

@raizyr @stongo thanks for reporting it. This is a bad one...
I need to investigate on what is needed exactly here.
I cannot imagine we would have to revoke&re-issue all the existing certs.

@raizyr
Copy link

raizyr commented Aug 1, 2016

If it helps the troubleshooting, I have the acme cache on a docker volume and didn't see the error until I tried to stop and start a new container. The current cache file has:

"agreement": "https://letsencrypt.org/documents/LE-SA-v1.0.1-July-27-2015.pdf"

With debug logging on, the previous log message is

traefik_1 | time="2016-08-01T19:52:27Z" level=info msg="Loaded ACME config from storage /etc/traefik/acme/acme.json"

So it's getting past the loadAccount call in CreateConfig

@emilevauge
Copy link
Member

It probably fails calling AgreeToTOS https://github.com/containous/traefik/blob/master/acme/acme.go#L277. I wonder if a call to client.Register() is needed again to manage this use case.

@mholt
Copy link

mholt commented Aug 1, 2016

FYI, Let's Encrypt's new subscriber agreement went into effect today. Current one is always at https://acme-v01.api.letsencrypt.org/terms (just learned this today, https://community.letsencrypt.org/t/how-to-get-url-to-subscriber-agreement-before-registering/2566/2?u=mholt).

(Investigating to see if this problem affects Caddy users as well...)

@Caerbannog
Copy link

I have this fatal error when I start my containers now. Is there some way to get around it with traefik v1.0.1?

@emilevauge
Copy link
Member

Here is a temporary workaround that allows traefik to start (waiting for a fix):

  • backup your acme.json
  • replace "agreement": "https://letsencrypt.org/documents/LE-SA-v1.0.1-July-27-2015.pdf" by "agreement": "https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf" and "terms_of_service": "https://letsencrypt.org/documents/LE-SA-v1.0.1-July-27-2015.pdf" by "terms_of_service": "https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf" your acme.json

Traefik should then start normally.

@emilevauge emilevauge mentioned this issue Aug 2, 2016
@emilevauge
Copy link
Member

emilevauge commented Aug 2, 2016

Fixed in #582. I will publish the v1.0.2 today.
Meanwhile, you can use the the docker image containous/traefik:pr-582.

@emilevauge
Copy link
Member

emilevauge commented Aug 2, 2016

Can someone confirm that containous/traefik:pr-582 fixes the issue ?

@raizyr
Copy link

raizyr commented Aug 2, 2016

I'll test it asap.

@raizyr
Copy link

raizyr commented Aug 2, 2016

@emilevauge containous/traefik:pr-582 does appear to work. With the old acme.json in place, I can start the container and the agreement gets updated to the new one. No errors. Thanks!

@emilevauge
Copy link
Member

OK great, thanks @raizyr for testing :)

@ldez ldez added the kind/bug/confirmed a confirmed bug (reproducible). label Apr 29, 2017
@ldez ldez added the area/acme label Jun 11, 2017
@traefik traefik locked and limited conversation to collaborators Sep 1, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

7 participants