Automated SSL Certificate Distribution System (ASCEDS)
is a distribution system for certificates 
which can be obtained from a provider offering an ACME interface. 
The system defines a site containing:
* one certificate manager which can get SSL certificates for wilcard 
  hostnames in a set of domains through certbot;
* a set of managed clients getting automatic certificate renewal or
  reconfiguration of SANs; services using certificates are 
  reconfigured/restarted automatically upon renewal;
* a web interface handling certificates for managed or unmanaged
  clients.

Alternatively: standalone mode:
* certbot and asceds run on the same computer and use an ACME 
  account/proxy to retrieve certificates only for that computer

ASCEDS was developed by Florin Manolache at Carnegie Mellon University 
for interfacing certbot with SSL certificate providers via ACME,
automatically distributing them to the computers on the network,
reconfigure and restart the relevant services.
ASCEDS is released under GPLv2 or any later version.

ASCEDS is released under GPLv2 or any later version.

Other contributors:
Jaime Hablutzel <hablutzel1@gmail.com> - code and docs patches ver 1.4.1

-------------------------------------------------

Quick start:

Case 1: centralized certificate manager
On the certificate manager:
* install and configure dependencies: snap, certbot, apache2/httpd
* install asceds
* initialize the certificate manager: 
    asceds-certmanager-setup [-s <cert_manager>]
* configure the client (Case 2 below) using the root/sudo choice
* customize the website: 
  * edit the apache2/httpd site configuration file typically in
    /etc/apache2/sites-available/asceds.conf
  * decide on the authentication and add the right .htaccess
    (see examples in /usr/share/doc/asceds/examples/site-*)
  * edit the web php configuration in /usr/share/asceds/etc/config.php
    (see examples in /usr/share/doc/asceds/examples/php-etc)
  * enable the website on the webserver: e.g. a2ensite asceds
* add authorized users: asceds-web-user -a <username>

Case 2: client linked to centralized certificate manager
On each managed client:
* install asceds (no need for snap or certbot)
* get info: certificate manager URL, root/sudo account access, 
            account on the web interface of the certificate manager
* prerequisites: client should be connected to the network,
            have DNS record, public IP address,
            and the domain should be served by the certificate manager
* connect to the certificate manager: asceds-init [-s <cert_manager>]
  (-n generates a new certificate); 
  when prompted, select the services using SSL certificate.

Case 3a: standalone mode, connect to ACME remote server/proxy
On each standalone computer:
* install and configure dependencies: snap, certbot
* install asceds
* initialize the certificate manager: 
    asceds-standalone-setup [-h] [-s <certmanager>]
* initialize the client part:
    asceds-init -d
  when prompted, select the services using SSL certificate.     

Case 3b: disable standalone mode, (configured ACME remote server/proxy)
On each standalone computer:
* Optional: uninstall certbot disable the timer:
* standalone configuration cleanup: 
    asceds-standalone-setup [-h] -d
