I want to use acme protocol to certificate my website flowbreeze.cn
I use a plain http client to communicate with Let’s Encrypt test env
I successfully create an account, order and fetch my challenges.
But I cannot response my dns-01 challenge, the response code is always 200, but state is still 'pending' and won't changed
I have read rfc8555, but I didn't find out any solution.
Am i missed something?
How many times (and how often) did you poll the authorization corresponding to the challenge that you triggered after you triggered the challenge? Did the authorization ever transition out of the pending state?
I don't think Let's Encrypt implements the processing status for challenges. It does seem like needing to poll for longer might have been the problem here.
Looks like the TXT value includes " ? Or are those escaped \" part of the Boulder error message?
@FlowBreeze If you included any " in the TXT value of the challenge: you should not add those.
I also stand by my recommendation to use an ACME client instead of using pure HTTP. You need to do this every 3 months at minimum and preferably automated, if used for a live website.
@FlowBreeze
I applaud the (super paranoid) use of HTTP only.
I suppose, once fully functional, such requests can be scripted to renew every 60 days.
Please keep of informed on your progress.
I post to challenge url two times,poll the authorization two time, and I wait at least half an hour before I wrote this topic,
Maybe the first time my jwt payload field is "" (not {}) that not accepted by server,but the response is still 200 and not different to the second
request
or I should wait longer time?
Next time I will wait longer time and use {}
And I'm going on to slove my dns validation error
It seems like you want to build a solution from the RFC.
My suggestion: before using the staging environment, test your commands locally. LetsEncrypt offers an application that implements a version of the ACME protocol that can be used for developing clients and familiarizing yourself with the protocol:
There are a few differences between Pebble and the staging/production system (Boulder) - they are listed in the "divergences" and "implementation details" documents for each project. They are not fully compatible with each other by design - but both are fully compatible with the ACME spec. Pebble often makes a different choice from Boulder when the spec offers multiple options, to ensure you build to the spec, and not ISRG/LetsEncrypt's decisions.
You should be able to get everything running with Pebble, and then test against the staging system.