Der HTTPS Server muss dem Client nachweisen, wer er ist. Dazu sendet er
sein Zertifikat an den Client.
Ein Zertifikat ist ein elektronisches Dokument mit der Domain des
Besitzers, sowie weiteren optionalen Informationen (Inhaber, Anschrift,
etc). Im Prinzip wie ein Personalausweis oder eine Geburtsurkunde.
Der Browser würde einem einfaches Zertifikat jedoch nicht vertrauen.
Schließlich könnte sich jeder Hinz und Kunz einfach eins selbst
erstellen. Urkunden kann man sich ja auch selbst schreiben.
Vertrauenswürdig werden solche Dokumente erst, wenn eine
vertrauenswürdige Person dieses Unterschreibt. Bei Zertifikaten ist
diese Unterschrift natürlich elektronisch und einigermaßen
fälschungssicher.
Die Frage ist: Wer ist vertrauenswürdig? Du jedenfalls nicht.
Der Browser und/oder das Betriebssystem enthält einen Satz sogenannter
Root Zertifikate. Die gehören den Personen/Firmen, die sich selbst
auserkoren haben, Zertifikate (Dokumente) zu beglaubigen. Die kungeln
alle in einem Club zusammen und folgen ihren eigenen Regeln, welche
festlegen, wer eigentlich vertrauenswürdig ist.
Wer die Clubregeln bricht, fliegt raus. In der Praxis läuft das dann so,
dass diese Zertifikate beim nächsten Betriebssystem- oder
Browser-Upgrade entsprechend gekennnzeichnet werden.
Wer zum Club gehört, kann die Zertifikarte seiner
Freunde/Geschäftspartner unterschreiben, so dass diese automatisch
ebenfalls als Vertrauenswürdig gelten. Und die können das auch tun, usw.
Angenommen du bist gerade auf der Seite mikrocontroller.net, dann zeigt
dein Browser an, dass mikrocontroller.net vertrauenswürdig ist, weil der
Server ein Zertifikat mit passender Domain vorgelegt hat und dieses von
jemandem (Let's Encrypt) als vertrauenswürdig unterschrieben wurde.
Und wer hat Let's Encrypt überhaupt erlaubt, solche Unterschriften zu
erteilen? Das war die Firma ISRG. Kennst du die? Bist du ganz sicher,
dass ISRG nicht irgendwelchen Deppen die Erlaubnis erteilt, Zertifikate
zu erstellen? Fragen über die man mal nachdenken sollte.
Um auf deine Frage zurück zu kommen: ISRG ist in diesem Fall die Root
Zertifizierungsstelle. Wenn dein Betriebssystem/Browser deren Zertifikat
vorliegen hat, vertraut es allen Kunden von ISRG autmatisch ebenfalls -
in diesem Fall Let's Encrypt. Und er vertraut auch allen Kunden von
Let's Encrypt - in diesem Fall mikrocontroller.net.
Damit dein Browser HTTPS spricht, muss der Server ein Zertifikat
vorlegen. Es muss nicht unterschrieben sein. Solche Zertifikate kann man
sich mit einem openssl Kommando ganz einfach selbst erstellen.
Allerdings warnt der Browser vor solchen unsignierten Zertifikaten. Er
würde auch warnen, wenn du das Zertifikat einfach selbst unterschreibst,
mit einem selbst gebasteltem Root Zertifikat.
Damit ein grünes Schloss erscheint, muss das Zertifikat von einer
offiziellen Root CA unterzeichnet werden oder von einem direkten oder
indirekten Geschäftspartner einer Root CA.
Alternative: Einfach eine Phantasie Root CA erstellen, das Server
Zertifikat damit signieren und das Root CA Zertifikat zentral
installieren.
Das hat z.B. die Firma Sennheiser gemacht, und dann auch noch den
privaten Schlüssel mit einem Treiber verteilt, so dass jeder Hacker
jetzt böse Webseiten erstellen konnte, die "angeblich" von Sennheiser
als Vertrauenswürdig unterschrieben wurden. Toll, was?
Am Ende vertrauen die Geschäftsleute jedem, der genug zahlt. Das ist
meine Meinung dazu. Dazu kommen Deppen wie Sennheiser, die das ganze
System unabsichtlich untergraben, aber natürlich auch Leute, die das
absichtlich machen. Wer kontrolliert schon, ob der neue Video Downloader
neue Zertifikate mit installiert?
Wusstest du, dass die NSA Mitglied im Club ist? Da könnte man noch sagen
"Die Amerikaner sind aber die guten". Und was ist mit einem arabischen
Geheimdienst? Den gibt's nämlich auch im Club.