unixcharles / acme-client

A Ruby client for the letsencrypt's ACME protocol.
MIT License
495 stars 116 forks source link

Obsolete Let's Encrypt note in README.md? #205

Closed GProst closed 10 months ago

GProst commented 3 years ago

Is this still accurate info? https://github.com/unixcharles/acme-client#ordering-an-alternative-certificate I believe Let's Encrypt decided to not switch chains so it should continue working with the default chain? Links:

So it seems like order.certificate should work and no changes needed, am I correct?

GProst commented 3 years ago

BTW, we're having an issue because order.certificate uses alternative short chain that's not supported by old Android devices, calling order.certificate(force_chain: 'DST Root CA X3') doesn't help, it still uses the short chain without 'DST Root CA X3' for some reason...

GProst commented 3 years ago

Ah, nevermind the second comment, our code just assumed that the chain consists of 2 certs for some reason and the third one was skipped. Didn't know it would work...

beam commented 3 years ago

force_chain has opposite issue. It always download 'DST ROOT CA X3' chian :/ There could be something like this..

class Acme::Client
  class ChainIdentifier
    def match_name?(name)
      issuers.last.include?("/CN=#{name}") if issuers.any?
    end
  end
end
robbat2 commented 3 years ago

@beam Thanks for that solution, worked great for us.

EXPECTED_TERMINAL_CERT_CN = 'ISRG Root X1'
order.certificate(force_chain: EXPECTED_TERMINAL_CERT_CN)
unixcharles commented 10 months ago

Closing since its not too relevant nowadays.

I would be open to add a method to download alternate certificates from the alternate http header and let the end user figure out which cert they want to use if that useful to anyone.