Der Raspi4 soll im Internet verfügbar sein.
$ sudo nano /etc/nginx/sites-available/server2020
server {
listen 443;
listen [::]:443;
server_name dev.wlsoft.de;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
location / {
proxy_pass http://192.168.80.20;
}
}
Den neuen Server verfügbar machen
$ sudo ln -s /etc/nginx/sites-available/server2020 /etc/nginx/sites-enabled/
nginx neue starten
$ sudo nginx -s reload
$ sudo certbot --nginx -d dev.wlsoft.de -d bone.nfix.de
Von Letsencrypt kommen E-Mails mit der Nachricht
You may need to update your client to the latest version in case it is still using the deprecated TLS-SNI-01 validation method. https://community.letsencrypt.org/t/february-13-2019-end-of-life-for-all-tls-sni-01-validation-support/74209
Mit dem neuen certbot das Zertifikat erneuern:
$ certbot --version || /path/to/certbot-auto --version
certbot 0.28.0
$ sudo sh -c "sed -i.bak -e 's/^\(pref_challs.*\)tls-sni-01\(.*\)/\1http-01\2/g' /etc/letsencrypt/renewal/*; rm -f /etc/letsencrypt/renewal/*.bak"
$ sudo certbot renew --dry-run
Jetzt kommt die Fehlermeldung:
IMPORTANT NOTES:
- The following errors were reported by the server:
Domain: bone.nfix.de
Type: connection
Detail: Fetching
http://bone.nfix.de/.well-known/acme-challenge/C1ye-gE-z3kMKFE-UQxZ-pkGaLD19E9FA7bHa6malik:
Error getting validation data
Da certbot den http Zugriff auf bone.nfix.de benötigt, muss in der Fritzbox das Port 80 freigegeben sein.
$ sudo certbot renew
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/bone.nfix.de.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert is due for renewal, auto-renewing...
Plugins selected: Authenticator nginx, Installer nginx
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for bone.nfix.de
Waiting for verification...
Cleaning up challenges
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed with reload of nginx server; fullchain is
/etc/letsencrypt/live/bone.nfix.de/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all renewals succeeded. The following certs have been renewed:
/etc/letsencrypt/live/bone.nfix.de/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Tags: beaglebone letsencrypt
Was vor drei Monaten geschah
Das Zertifikat ist abgelaufen und muss jetzt erneuert werden.
Auf der virtuellen Maschine Kubuntu
$ cd letsencrypt/
$ ./letsencrypt-auto --rsa-key-size 4096 --manual certonly
Eingeben der Domain-Namen
bone.nfix.de
auf dem Beaglebone ins Grundverzeichnis www wechseln und die von letsencrypt erwartete Datei anlegen
$ sudo -i
# cd /var/www/
# printf "%s" KENNUNGS-STRING > .well-known/acme-challenge/KENNUNGS-DATEI
Auf der virtuellen Maschine
$ sudo -i
# cd /etc/letsencrypt/archive/bone.nfix.de/
# scp * wnf@bone2013:schluessel
cert1.pem 100% 2134 2.1KB/s 00:00
cert2.pem 100% 2134 2.1KB/s 00:00
chain1.pem 100% 1675 1.6KB/s 00:00
chain2.pem 100% 1675 1.6KB/s 00:00
fullchain1.pem 100% 3809 3.7KB/s 00:00
fullchain2.pem 100% 3809 3.7KB/s 00:00
privkey1.pem 100% 3272 3.2KB/s 00:00
privkey2.pem 100% 3276 3.2KB/s 00:00
Auf dem Beaglevone Den Http-Server anhalten:
$ sudo -i
# service lighttpd stop
# cd /home/wnf/schluessel
# cat privkey2.pem cert2.pem > ssl.pem
# cd /etc/letsencrypt/live/
# cp /home/wnf/schluessel/ssl.pem .
# cp /home/wnf/schluessel/fullchain2.pem ./fullchain.pem
Den Http-Server wieder starten:
# service lighttpd start
Und schon hat der Beaglebone wieder ein gültiges Zertifikat: https://bone.nfix.de/
Tags: beaglebone letsencrypt httpsLiteratur
Voraussetzung
In der VM eine dhparam.pem erstellen (dauert auf dem BBB zu lange)
$ openssl dhparam -out dhparam.pem 4096
die Dateien auf den Beaglebone kopieren
# scp dhparam.pem wnf@bone2013:schluessel
$ sudo -i
# service lighttpd stop
SSL für lighttpd auf dem Beaglebone einrichten
# cd /home/wnf/schluessel
# cat privkey1.pem cert1.pem > ssl.pem
# mkdir /etc/letsencrypt/live/
# cd /etc/letsencrypt/live/
# cp /home/wnf/schluessel/ssl.pem .
# cp /home/wnf/schluessel/fullchain1.pem ./fullchain.pem
# cd /etc/ssl/certs/
# cp /home/wnf/schluessel/dhparam.pem .
# cd /etc/lighttpd/conf-enabled
# touch letsencrypt.conf
# nano letsencrypt.conf
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/letsencrypt/live/ssl.pem"
ssl.ca-file = "/etc/letsencrypt/live/fullchain.pem"
ssl.dh-file = "/etc/ssl/certs/dhparam.pem"
ssl.ec-curve = "secp384r1"
ssl.honor-cipher-order = "enable"
ssl.cipher-list = "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"
ssl.use-compression = "disable"
setenv.add-response-header = (
"Strict-Transport-Security" => "max-age=63072000; includeSubdomains; preload",
"X-Frame-Options" => "DENY",
"X-Content-Type-Options" => "nosniff"
)
ssl.use-sslv2 = "disable"
ssl.use-sslv3 = "disable"
}
Tags: beaglebone letsencrypt https
Literatur
Da der letsencrypt-Client auf dem Beaglebone nicht läuft, habe ich die Anforderung des Zertifikats auf einer Virtuellen Maschine Kubuntu 15.10 vorgenommen.
Das Zertifikat wird auf der VM erstellt, jedoch wird durch letsencrypt der Beaglebone über http nach einer bestimmten Datei gefragt, um sicher zu stellen, dass man auch der Besitzer dieser Domain ist.
Auf der VM
$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt
$ ./letsencrypt-auto --rsa-key-size 4096 --manual certonly
jetzt die gewünschte Adresse eintragen und die weiteren Anweisungen von letsencrypt abarbeiten:
auf dem Beaglebone ins Grundverzeichnis www wechseln und die von letsencrypt erwartete Datei anlegen
# cd /var/www/
# printf "%s" KENNUNGS-STRING > .well-known/acme-challenge/KENNUNGS-DATEI
Gratulation
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/bone.nfix.de/fullchain.pem. Your cert will
expire on 2016-03-05. To obtain a new version of the certificate in
the future, simply run Let's Encrypt again.
- If like Let's Encrypt, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
die Dateien auf den Beaglebone kopieren
# cd /etc/letsencrypt/archive/bone.nfix.de/
# ll
insgesamt 24
drwxr-xr-x 2 root root 4096 Dez 6 11:21 ./
drwx------ 3 root root 4096 Dez 6 11:21 ../
-rw-r--r-- 1 root root 2134 Dez 6 11:21 cert1.pem
-rw-r--r-- 1 root root 1675 Dez 6 11:21 chain1.pem
-rw-r--r-- 1 root root 3809 Dez 6 11:21 fullchain1.pem
-rw-r--r-- 1 root root 3272 Dez 6 11:21 privkey1.pem
# scp * wnf@bone2013:schluessel
Weiter mit "Auf dem Beaglebone den lighttp-Server für https konfigurieren":?q=node/275
Tags: letsencrypt https