Let's Encrypt automated free SSL certificate directadmin

 ETA


Functionality for the new Free Certificate Authority:

https://letsencrypt.org/


directadmin.conf option:

letsencrypt=0


where 0 is the internal default.

To enable this feature, use:

letsencrypt=1


followed by the "ACTION REQUIRED" below to add the .well-known Alias to the httpd-alias.conf file.


Users can then access it from:

User Level -> SSL Certificates


where a 3rd certification creation radio box will be created:

"Free & automatic certificate from Let's Encrypt"

in addition to the other 2 'self-signed' and 'create request' options.


There is an internal variable, set by default to:

letsencrypt_renewal_days=85

you shouldn't need to adjust this.

The certificates are only valid for 90 days, so DA starts trying to renew 85 days in.

It's triggered at the end of a full tally, every night. Looks at any domain.com.cert.creation_time files, and sees if it's old enough.


You can alternatively use:

letsencrypt=2

to use:

/home/user/domains/domain.com/public_html/.well-known

but this method is not recommended, as it prevents the use of multi-domain certificates... use letsencrypt=1 :)


while:

letsencrypt=1

will use:

to use /var/www/html/.well-known


======================

ACTION REQUIRED

You must have the .well-known Alias pointing to /var/www/html/.well-known, so update your CustomBuild configs:

cd /usr/local/directadmin/custombuild

./build update

./build rewrite_confs


======================

RATE LIMIT


LetsEncrypt does have a rate limit, so you won't likely be able to secure hundreds of domains at the same time.

https://community.letsencrypt.org/t/quick-start-guide/1631


As of Jan 31st, 2016 the rates are:

Rate limit on registrations per IP is now 10 per 3 hours

Rate limit on certificates per Domain is now 5 per 7 days

but once the project becomes "stable", they'll likely increase the allowed rates.


======================

TASK.QUEUE


as mentioned above, the full tally does handle the automated renewals, if they're about to expire.

If you want to run a renewal check manually, you can use:

echo "action=rewrite&value=letsencrypt" >> /usr/local/directadmin/data/task.queue


which will call the same function as the full tally calls.

Only domains who's certificates are about to expire will be updated.


======================

SCRIPTS:

/usr/local/directadmin/scripts/letsencrypt.sh


usage:

./letsencrypt.sh request|renew|revoke domain.com 4096 (/path/to/csr-request-config-file) (document_root)


but you shouldn't need to run it manually, as DA will call it automatically when the User triggers it through DA.

Note, when you run it through DA, the domain.com.san_config will have more details, than if you run it from ssh (.san_config will be created, but with less info)


======================

CONFIG FILES

/usr/local/directadmin/data/users/username/letsencrypt.key                                           - L.E. account ID for this User. Only created once.

/usr/local/directadmin/data/users/username/domains/domain.com.cert.creation_time        - contains time L.E. cert was created (to be automatically renewed every 90 days)

/usr/local/directadmin/data/users/username/domains/domain.com.cert.san_config            - csr -config request info, used for creation and renewal.

/var/www/html/.well-known/acme-challenge                                                                   - directory created by DA for the random challenge key file: letsencrypt=1

/home/user/domains/domain.com/public_html/.well-known/acme-challenge                      - challenge key file if letsencrypt=2

.htaccess        - added to either document root to disable mod_rewrite, in case it's enable higher up.


Comments

Popular posts from this blog

how to install internet download manger in linux

cpanel exam CPSP Answers

How to install zimbra collaboration suite 8.8.11 on CentOS 7