Hallo Community,
ich habe auf einem realen Windows 10 Pro 1809 Build 17763.43 unter Virtualbox 6.0.4r12843 ein virtuelles Lubuntu 18.04.2 LTS mit 4.15.0-47-generic Kernel laufen.
In diesem virtuellem Linux habe ich Docker installiert. Und mit docker network create --subnet=172.18.0.0/16 mynet
das Netzwerk mynet erstellt.
Dann habe ich einen Container mit dem Namen myportainer basierend auf den Image portainer/portainer (IP = 172.18.0.2 Port = 9000) und ein Container mit dem Namen mynginx basierend auf dem nginx Image (IP = 172.18.0.3 Port = 80 und 443) im Netzwerk mynet erstellt, und diese gestartet.
Anschließend ein Terminal geöffnet und mit docker exec -it mynginx /bin/bash
in die Bash Shell des Containers mynginx gewechselt.
Dort mit apt-get
update und apt-get upgrade
sichergestellt das die Pakete aktuell sind. Anschließend mit apt-get install nano
installiert.
Nachfolgend mit apt-get install git
installiert und dann mit git clone https://github.com/letsencrypt/letsencrypt
runtergeladen.
Mit nano /etc/nginx/conf.d/default.conf
geöffnet den Inhalt gelöscht und folgendes eingegeben:
upstream portainer {
server 172.18.0.2:9000;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name docker.mydomain.de;
root /usr/share/nginx/html;
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
}
location /portainer/ {
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_pass http://portainer/;
}
location /portainer/api/websocket/ {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
proxy_pass http://portainer/api/websocket/;
}
location ^~ /.well-known/acme-challenge {
default_type text/plain;
root /usr/share/nginx/html/letsencrypt;
}
location = /.well-known/acme-challenge/ {
return 404;
}
}
gespeichert und nano geschlossen. Mit nginx -t
die Syntax überprüfen lassen und nginx -s reload
ausgeführt.
Immer noch im Terminal des mynginx Containers mit mkdir -p /usr/share/nginx/html/letsencrypt/.well-known/acme-challenge
die Verzeichnisse angelegt.
Mit cd /usr/share/nginx/html/letsencrypt/.well-known/acme-challenge
ins Verzeichnis gewechselt.
Ein zweites Terminal mit der Bash Shell des Containers geöffnet und dort ./letsencrypt-auto certonly –a manual –-rsa-key-size 4096
ausgeführt.
An dem Punkt
Create a file containing just this data: DATEN und And make it available on your web server at this URL: http://docker.mydomain.de/.well-known/acme-challenge/DATEI
Press Enter to Continue
Im ersten Terminal mit echo -n DATEN > DATEI
die Aufforderung aus dem zweitem Terminal erfüllt.
Die URL aus dem zweiten Terminal im Browser geöffnet. Der Inhalt (DATEN) der DATEI wurden angezeigt.
Im zweitem Terminal „enter“ gedrückt und letsencrypt lief weiter und gab eine Fehler aus:
Some challenges have failed.
IMPORTANT NOTES:
- The following errors were reported by the server:
Domain: docker.mydomain.de
Type: unauthorized
Detail: Invalid response from
http://docker.mydomain.de/.well-known/acme-challenge/DATEI
[2a01:4f8:190:62f4::13]:
"<html><head><title>docker.mydomain.de</title></head><body><center><b>Diese
Domain ist unkonfiguriert.</b></center></body></html>"
To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address.
In meiner Frizbox habe ich in den Netzwerk Einstellungen unter DNS-Rebind-Schutz die Domäne docker.mydomain.de als Ausnahme hinzugefügt.
In der /etc/hosts des virtuellen Linux ist die Domäne mit IP eingetragen.
Was sollte ich noch wo und wie machen, damit es mit dem Letsencrypt funktioniert ?