08.09.2023

Let’s-Encrypt Zertifikat

MSOffice | Outlook
OpenOffice
LocoSoft
Backup Exec
Veeam Backup
BauSU
Datev
TurboMed
Diamant Software
ELO Office
Sage Software
ChartaCasa
Starmoney/ Starmoney Business
AVM Ken!
Profit Änderungen für W2K Server und Peer to Peer Installation
Installation von KWP
Acrobat Reader
Symantec AntiVirus und PC-Anywhere auf Win2003 Server
Knoppix
Kaspersky, F-Secure, ESET, Avira, McAfee, Trend Micro
OpenVPN
NCP VPN Client
SSL
Nemetschek Allplan
ESTOS CTI
Benchmark Programme
Internet Browser
eMail Clients
Syncronisations Software
Allegro
WireShark
WinPcap
OpenStreetMap
WinBuilder
Let’s-Encrypt Zertifikat
Acronis
DriveSnapshot
Autopsy
Übersicht
sonstiges

Navigation:

Links:
Let’s Encrypt
ACME Client Implementations
Certify SSL Manager manage free https certificates for IIS
certbot DOCs
How to stop using TLS-SNI-01 with Certbot
Automatically enable HTTPS on your website with EFF's Certbot, deploying Let's Encrypt certificates
Microsoft RDP mit Letsencrypt
Exchange mit Let’s Encrypt Teil1
Exchange mit Let’s Encrypt Teil2

SSL TestPages:
SSLLabs - SSL Server Test
https://observatory.mozilla.org/analyze.html?host=www.heise.de - Mozilla Sicherheitscheck für WebServer

Seitenanfang

Dateien und Verzeichnisse

Datei / Verzeichnis Beschreibung
/etc/letsencrypt/ Arbeitsverzeichnis für Zertifikate und Konfigurationsdateien
/etc/letsencrypt/live/domain.tld/ Link zu den aktuellen Zertifikaten
/var/log/letsencrypt/letsencrypt.log aktuelle LOG Datei
/etc/letsencrypt/renewal/domain.tld.conf certbot renew Steuerdatei
Zertifikatsdateien
cert.pem öffentliche Server Zertifikat
chain.pem Intermediate Zertifikat
fullchain.pem cert.pem + chain.pem
privkey.pem Privater Schlüssel
   
Befehl Beschreibung
certbot renew --force-renewal Zertifikat manuell erneuern
certbot renew --dry-run Prüflauf, Zertifikatserneuerung aber ohne Änderungen am System
   

 

Seitenanfang

Client Installation

- add-apt-repository unter ubuntu 14.04 und debian installieren

apt-get install python-software-properties software-properties-common

- Let’s-Encrypt-Client laden und installieren

add-apt-repository ppa:certbot/certbot
apt update
apt install python-certbot-apache

- Let’s-Encrypt-Zertifikate für Apache installieren, mit diesem Befehl kann man auch das Zertifikat um weitere Domainname erweitern.

certbot --apache \
 -d domain.tld \
 -d www.domain.tld \
 -d imap.domain.tld \
 -d smtp.domain.tld
Parameter Beschreibung
--staging führt erst einen Probelauf durch, ist dieser erfolgreich, muss der Parameter entfernt werden. Zum Test wird ein Zertifikat von "Fake LE Intermediate X1" eingebunden
-d legt die Domain im Zertifikat fest
--apache PlugIn weiter ist noch --webroot, --nginx, --standalone, --manual möglich
-m <eMail Adresse> eMail, an die die Mail zum erneuern des Zertifikates geschickt wird
certbot --help certbot Hilfe anzeigen
certbot revoke Zertifikate wiederrufen
-rsa-key-size 4096 Key Länge festlegen
service apache2 restart

- Zertifikate die in den nächsten 30 Tagen ablaufen automatisch erneuern

#!/bin/sh
# Datei /etc/cron.weekly/letsencrypt
certbot renew

Script ausführbar machen, wird ein mal die Woche ausgeführt

chmod a+x /etc/cron.weekly/letsencrypt

- wenn das Zertifikat noch in mehreren Diensten eingebunden ist, müssen diese nach den erneuern auch neu gestartet werden.

#!/bin/sh
# Datei /etc/cron.weekly/letsencrypt
certbot renew

result=$(find /etc/letsencrypt/live/ -type l -mtime -1 )
if [ -n "$result" ]; then
  systemctl restart postfix.service
  systemctl restart kopano-gateway.service
  systemctl restart kopano-ical.service
fi
Seitenanfang

Let’s-Encrypt mit Selfhost DynDNS

- Let’s-Encrypt-Client laden und installieren

apt install certbot

HTTP-01 challenge

Damit die Erstellung des Zertifikates funktioniert, muss Port 80 und 443 vom Internet auf das NAS geleitet werden.

DNS-01 challenge

Im DNS muss ein TXT Record für die Domain angelegt werden der ein Token enthält.

Parameter Erläuterung
preferred-challenges dns DNS-Challenge wählen
manual TXT Record wird manuell eingetragen
   
   

 

certbot certonly --server https://acme-v02.api.letsencrypt.org/directory -d my.dyndns.de --email user@online.de --preferred-challenges dns --manual
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y
Account registered.
Requesting a certificate for my.dyndns.de

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name:

_acme-challenge.my.dyndns.de.

with the following value:
ACpUBtphxihPeku2yG-UDQfZ1ohkmgOyWBdQSAgm28c

Before continuing, verify the TXT record has been deployed. Depending on the DNS
provider, this may take some time, from a few seconds to multiple minutes. You can
check if it has finished deploying with aid of online tools, such as the Google
Admin Toolbox: https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.my.dyndns.de.
Look for one or more bolded line(s) below the line ';ANSWER'. It should show the
value(s) you've just added.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue

Waiting for verification...
Cleaning up challenges

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/my.dyndns.de/fullchain.pem
Key is saved at:         /etc/letsencrypt/livemy.dyndns.de/privkey.pem
This certificate expires on 2023-12-06.
These files will be updated when the certificate renews.

NEXT STEPS:
- This certificate will not be renewed automatically. Autorenewal of --manual certificates
  requires the use of an authentication hook script (--manual-auth-hook) but one was not provided.
  To renew this certificate, repeat this same certbot command before the certificate's expiry date.
  Subscribe to the EFF mailing list (email: user@online.de).

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- Selfhost TXT Record anlegen
Subdomainname: _acme-challenge.my.dyndns.de
Verfallszeit (TTL) Sofort
Inhalt / Content: ACpUBtphxihPeku2yG-UDQfZ1ohkmgOyWBdQSAgm28c

- Testen des TXT Eintrages

nslookup -type=TXT _acme-challenge.my.dyndns.de 8.8.8.8

Für die Aktualisierung des Eintrages gibt es bei Selfhost auch eine API Schnittstelle.
Als erstes muss der TXT Record _acme-challenge.my.dyndns.de unter Domainverwaltung | Neue Subdomain/Neuen Record anlegen angelegt werden. Wenn man jetzt beim TXT-Record Ändern wählt, wird unter Subdomainname: _acme-challenge.my.dyndns.de (5182211) angezeigt. Die Nummer hinter dem Domainname ist die RecordID.

curl -X POST -F 'username=%USERNAME%' -F 'password=%PASSWORD%' -F 'rid=%RECORDID%' -F 'content=%CONTENT%' https://selfhost.de/cgi-bin/api.pl

oder

https://selfhost.de/cgi-bin/api.pl?username=<USERNAME>&password=<PASSWORD>&rid=%<RECORDID>&content=<CONTENT>

für das Beispiel wäre es der folgende Befehl

https://selfhost.de/cgi-bin/api.pl?username=483483&password=##Passwort##&rid=%5182211&content=ACpUBtphxihPeku2yG-UDQfZ1ohkmgOyWBdQSAgm28c

 

Seitenanfang

Zertifikat prüfen

- Zertifikat Ausgabe testen

openssl s_client -connect domain.tld:443

- von allen Mail-Zertifikaten das Ablaufdatum ausgeben.

#!/bin/bash
#
#
echo
openssl s_client -connect mail.domain.tld:995 2>&- | if openssl x509 -enddate -noout
then
  echo "POP3 Certificate is good for another day!"
else
  echo "Certificate has expired or will do so within 24 hours!"
  echo "(or is invalid/not found)"
fi
echo
echo
openssl s_client -connect mail.domain.tld:993 2>&- | if openssl x509 -enddate -noout
then
  echo "IMAP Certificate is good for another day!"
else
  echo "Certificate has expired or will do so within 24 hours!"
  echo "(or is invalid/not found)"
fi
echo
echo
openssl s_client -starttls smtp -crlf -connect mail.domain.tld:587 2>&- | if openssl x509 -enddate -noout
then
  echo "SMTP Certificate is good for another day!"
else
  echo "Certificate has expired or will do so within 24 hours!"
  echo "(or is invalid/not found)"
fi
echo
echo
Seitenanfang

sonstiges