Point a wildcard record to your server, install apache2
root@cluebat:~# apt-get install virtualenv apache2
and install certbot:
root@cluebat:~# wget https://dl.eff.org/certbot-auto --2018-10-05 23:07:52-- https://dl.eff.org/certbot-auto Resolving dl.eff.org (dl.eff.org)... 151.101.16.201, 2a04:4e42:4::201 Connecting to dl.eff.org (dl.eff.org)|151.101.16.201|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 62299 (61K) [application/octet-stream] Saving to: ‘certbot-auto’ certbot-auto 100%[======================================================>] 60.84K --.-KB/s in 0.002s 2018-10-05 23:07:52 (34.5 MB/s) - ‘certbot-auto’ saved [62299/62299] root@cluebat:~# chmod 755 certbot-auto root@cluebat:~#
Run certbot: (follow onscreen guide to create txt record)
root@cluebat:~# ./certbot-auto certonly --manual -d *.cluebat.eu --agree-tos --no-bootstrap --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory Creating virtual environment... Installing Python packages... Installation succeeded. Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator manual, Installer None Obtaining a new certificate Performing the following challenges: dns-01 challenge for cluebat.eu - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please deploy a DNS TXT record under the name _acme-challenge.cluebat.eu with the following value: etwS4yidYTkFhl441f7wul5GZEv8kdmNfQCSDqiXrU0 Before continuing, verify the record is deployed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Press Enter to Continue Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/cluebat.eu/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/cluebat.eu/privkey.pem Your cert will expire on 2019-01-03. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
And now enable ssl in apache:
root@cluebat:~# a2enmod ssl Considering dependency setenvif for ssl: Enabling module ssl. See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates. To activate the new configuration, you need to run: systemctl restart apache2 root@cluebat:~#
and set up the virtualhost, wildcard.conf:
<VirtualHost *:443> SSLEngine on SSLProtocol All -SSLv2 -SSLv3 SSLHonorCipherOrder On SSLCipherSuite 'EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA' SSLCertificateFile /etc/letsencrypt/live/cluebat.eu/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/cluebat.eu/privkey.pem ServerAdmin webmaster@localhost ServerName wildcard.cluebat.eu ServerAlias *.cluebat.eu DocumentRoot /var/www/html </VirtualHost>
Enable new site, Restart apache, and navigate to: wildcard.cluebat.eu:
root@cluebat:~# a2ensite wildcard.conf Enabling site wildcard. To activate the new configuration, you need to run: systemctl reload apache2 root@cluebat:~# systemctl restart apache2
Noticing the “cluebat.eu” does not work, you can add secondary domains like:
root@cluebat:~# ./certbot-auto certonly --manual -d *.cluebat.eu -d cluebat.eu --agree-tos --no-bootstrap --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator manual, Installer None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - You have an existing certificate that contains a portion of the domains you requested (ref: /etc/letsencrypt/renewal/cluebat.eu.conf) It contains these names: *.cluebat.eu You requested these names for the new certificate: *.cluebat.eu, cluebat.eu. Do you want to expand and replace this existing certificate with the new certificate? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (E)xpand/(C)ancel: e Renewing an existing certificate Performing the following challenges: dns-01 challenge for cluebat.eu dns-01 challenge for cluebat.eu - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please deploy a DNS TXT record under the name _acme-challenge.cluebat.eu with the following value: etwS4yidYTkFhl441f7wul5GZEv8kdmNfQCSDqiXrU0 Before continuing, verify the record is deployed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Press Enter to Continue - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please deploy a DNS TXT record under the name _acme-challenge.cluebat.eu with the following value: xD428EnO8OIXpH3LdBGs6ObwoR8hOeN6obnyEvBZids Before continuing, verify the record is deployed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Press Enter to Continue Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/cluebat.eu/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/cluebat.eu/privkey.pem Your cert will expire on 2019-01-03. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Adding another wildcard to the same cert goes as easy:
root@cluebat:~# ./certbot-auto certonly --manual -d *.cluebat.eu -d cluebat.eu -d housebot.dk -d *.housebot.dk --agree-tos --no-bootstrap --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator manual, Installer None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - You have an existing certificate that contains a portion of the domains you requested (ref: /etc/letsencrypt/renewal/cluebat.eu.conf) It contains these names: *.cluebat.eu, cluebat.eu You requested these names for the new certificate: *.cluebat.eu, cluebat.eu, housebot.dk, *.housebot.dk. Do you want to expand and replace this existing certificate with the new certificate? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (E)xpand/(C)ancel: e Renewing an existing certificate Performing the following challenges: dns-01 challenge for cluebat.eu dns-01 challenge for cluebat.eu dns-01 challenge for housebot.dk dns-01 challenge for housebot.dk - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please deploy a DNS TXT record under the name _acme-challenge.cluebat.eu with the following value: etwS4yidYTkFhl441f7wul5GZEv8kdmNfQCSDqiXrU0 Before continuing, verify the record is deployed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Press Enter to Continue - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please deploy a DNS TXT record under the name _acme-challenge.cluebat.eu with the following value: xD428EnO8OIXpH3LdBGs6ObwoR8hOeN6obnyEvBZids Before continuing, verify the record is deployed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Press Enter to Continue - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please deploy a DNS TXT record under the name _acme-challenge.housebot.dk with the following value: 5_IQHWzUVroRwk_AH8Qe2ztg3rMYuWHIiHX9TvH3t1Y Before continuing, verify the record is deployed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Press Enter to Continue - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please deploy a DNS TXT record under the name _acme-challenge.housebot.dk with the following value: 5CSRERvy-uXp9gO33gaCzJdM4UBb84sspJDJ1UO9AII Before continuing, verify the record is deployed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Press Enter to Continue Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/cluebat.eu/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/cluebat.eu/privkey.pem Your cert will expire on 2019-01-03. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Restart apache, and test:
root@cluebat:~# systemctl restart apache2 root@cluebat:~#