Client Configuration¶
Setting the directory¶
When the ACME server is up and running, the clients need to be pointed to its directory URL. This is achieved in different ways depending on the client and should be part of its documentation. The following clients were tested against and are thus described here.
Acmetiny: Simply set the argument
--directory-urlwhen running the client:acme-tiny --directory-url https://my-server.com/directory
Certbot: Set the server option in the
certbot.iniand optionally set the config directory to avoid confusion as it is set to/etc/letsencryptby default.certbot.ini:server = https://my-server.com/directory config-dir = /etc/my_server_acme
AcmeClient: Pass the directory URL when initializing the client object.from acmetk.client import AcmeClient client = AcmeClient( directory_url="https://my-server.com/directory", private_key=..., contact=..., )
Dehydrated: Set the CA option in the
configfile and specify it when running dehydrated../config:CA=https://my-server.com/directory
dehydrated --config ./config
External Account Binding¶
ACME servers may be configured to require that new account registrations contain an external account binding to prove that the user has control over some resource outside of the account key itself, see 7.3.4. External Account Binding.
The mechanism implemented in this package, AcmeEAB,
leverages SSL client certificates to identify a user.
The user loads their SSL client certificate into a browser and visits https://my-server.com/eab, copying
the kid and hmac_key values which are then specified when registering a new account.
The following shows how to pass them to Certbot if the kid (equal to the email address in the certificate) is
certmail@my-server.com and the hmac_key is L6-GB7Jj-CNNpSAJUgGzZw:
certbot -c certbot.ini register --agree-tos -m certmail@my-server.com \
--eab-kid certmail@my-server.com \
--eab-hmac-key L6-GB7Jj-CNNpSAJUgGzZw