MihhailSokolov / ACMEclient

ACME client (according to RFC8555) implemented in Go as a part of Network Security course at ETH Zurich.
0 stars 0 forks source link

ACME Client

This application implements ACME client with the addition of DNS and HTTP servers that are needed to facilitate local testing. It contains the following components:

The application also requires a running ACME server. Pebble is recommended.

ACME client adheres to RFC8555 but does not implement the complete functionality, only main points. The application is able to:

How to run

The application must be first compiled by running ./compile and it is then run with ./run <...arguments...>.

Positional arguments:

Keyword arguments:

Example: Consider the following invocation of run:

run dns01 --dir https://example.com/dir --record 1.2.3.4 --domain netsec.ethz.ch --domain syssec.ethz.ch

When invoked like this, the application obtains a single certificate valid for both netsec.ethz.ch and syssec.ethz.ch. It uses the ACME server at the URL https://example.com/dir and perform the dns-01 challenge. The DNS server of the application responds with 1.2.3.4 to all requests for A records. Once the certificate has been obtained, the application starts its certificate HTTPS server and installs the obtained certificate in this server.