some pics

Image IMG_8681.HEIC

Image IMG_8683.HEIC

Image IMG_8684.HEIC

\includegraphics[width=\textwidth]{.././20250409/jpeg/IMG_8686.PNG}

Jetzt muss ich noch was machen. SSH ist ja noch mal anders wie alles andere. Ich habe ja sozusagen mein SSH Server und mein SSH Client jetzt muss ich anders als das ist jetzt einmal was anderes. Ich muss ja den öffentlichen Schlüssel also den öffentlichen Schlüssel damit damit verschlüsselt. Der andere Rechner, auf denen ich mich in dem Fall einloggen verschlüsselt jetzt die Nachrichten. Jetzt muss ich natürlich den öffentlichen Schlüssel rüber kopieren

Wenn wir jetzt unser E-Mail-Programm angucken und wir verschlüsseln irgend ne Nachricht die tun wir verschlüsselt in die E-Mail rein. Dann ist ja der Fall dass ich den Schlüssel gar nicht Kopieren muss. Also was heißt kopieren ich nehme mal an mein der andere Nutzer der mir ne E-Mail schickt. Der ist so klug wie ich. Ich tue den Schlüssel einfach ins Internet den öffentlichen und damit verschlüsselt da jetzt die E-Mail und schickt sie mir gut damit kann ich mir das kopieren ersparen. Bei SSH ist es natürlich was anderes Weil Ich kann ja den Schlüssel nicht einfach ins Internet setzen und dann weißt du mein anderer Rechner weiß dann wo der Schlüssel ist. So klug ist mein Rechner trotz allem nicht deswegen. Ich muss den Schlüssel rüber kopieren auf den Rechner und deswegen gibt es

ssh-copy-id

Gerade eben gerade eben öffentlich auf den anderen Server drüber kopieren auf den anderen Rechner rüber kopieren also nicht unseren SSH Server aber auf den anderen Rechner können wir den jetzt rüber kopieren. Gut das machen wir gleich mal und dann passt die Sache mit den Zertifikaten müssen wir gucken

david@work:~$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/david/.ssh/id_rsa): /home/david/.ssh/id_rsa20250422
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/david/.ssh/id_rsa20250422
Your public key has been saved in /home/david/.ssh/id_rsa20250422.pub
The key fingerprint is:
SHA256:4jJM9NO2O6koFyGoSe5MIrAFsPrsq8B2818jlUmy110 david@work
The key's randomart image is:
+---[RSA 4096]----+
|o                |
|..               |
|.o  .  . .     E |
|+.o... .+ + . .  |
|*+ ...+.S= . .   |
|B= o.. +o.       |
|Booo+....+       |
|o+o ++  =..      |
|..o+..oo..       |
+----[SHA256]-----+
david@work:~$ ssh-copy-id -i /home/david/.ssh/id_rsa20250422.pub david@www1
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/david/.ssh/id_rsa20250422.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
david@www1's password:

\includegraphics[width=\textwidth]{Screenshot_220250422_113905.png}

david@work:~$ ssh-copy-id -i /home/david/.ssh/id_rsa20250422.pub david@www1
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/david/.ssh/id_rsa20250422.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
david@www1's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'david@www1'"
and check to make sure that only the key(s) you wanted were added.

david@work:~$ ssh 'david@www1'
david@www1's password:

david@work:~$

Müssen wir kurz jetzt müssen wir kurz aufpassen. Jetzt müssen wir uns erst mal notieren was wir wissen wollen das Problem Nummer eins und jetzt müssen wir kurz Ordnung schaffen.

Erste Problem ist, wir müssen uns trotzdem noch mal genau angucken was signieren. Mit dem signieren müssen wir noch mal genau nachgucken mit der CA auch diesmal generell aber müssen wir nachgucken wir müssen gucken das ist das zweite Problem. Wie machen wir unsere CA hab ich vergessen oder weiß ich nicht ich weiß, sie haben ne CA und ich weiß sie haben Zertifikate. Woher kommen die das weiß ich nicht. Also wir merken uns jetzt folgende Begriffe

C A

Zertifizieren

Und wir gucken nach dem Linux Programm fürs zertifizieren

Dann müssen wir uns jetzt alle Optionen angucken. Von dem gesamten SSH müssen wir alle Optionen angucken, was wir da nicht vergessen sollten. Also das stehen hier einige das ist das eine Problem und das nächste Problem ist dann machen wir kurz Pause. Wir müssen also die Verschlüsselung drinnen, wie gesagt, es gibt Verschlüsselung Algorithmen, so würde ich das jetzt Pi mal Daumen sagen für das erzeugen der Schlüsselpaare und es gibt Verschlüsselung Algorithmen für das Verschlüssen selber die müssen wir uns genauso merken das merken wir uns jetzt und dann machen wir mal kurzpause.

Öff.Schl"ussel: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Verschl"u.: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Komprimierung: nicht komprimiert, ZIP, ZLIB, BZIP2

Öff.Schl"ussel: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Verschl"u.: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Komprimierung: nicht komprimiert, ZIP, ZLIB, BZIP2

Also wir haben ja gesagt was haben wir gesagt wir brauchen die wir brauchen jetzt erst mal folgendes ja wir wollen uns die Option hier angucken von unserem SSH Schlüsselerzeugung Dingsbums ssh-keygen Heißt das auch gut Deutsch gut? Ich guck mir jetzt paar Sachen an was wir hier haben und ich guck noch im Netz ob's ne Beschreibung zu der Sache gibt.

Noch mal die Begriffe, um uns vor Augen zu führen. Wir brauchen

Wir müssen gucken, das weiß ich nicht auswendig. Wo ist unsere Zertifizierungsstelle das ist ein eigenes Programm. Unsere CA ist ein eigenes Programm. Danach müssen wir suchen. Schlau machen Linux Programm C A. Gibt's ein Programm für das weiß ich.

Dann brauchen wir jetzt noch den Begriff signieren

Dann brauchen wir den Begriff Fingerprint brauchen wir

Schlüssel ID, denke ich, haben wir verstanden?

Und was brauchen wir noch für war noch was weiß gar nicht. Wir gucken jetzt erst mal nach der CA und ich probier einen beliebigen Schlüssel zu zertifizieren ob uns das gelingt. Also wir gucken jetzt mal als erstes bevor wir uns das den Schlüsselerzeuger sag ich mal, weil der Diktierer kann es ja nicht umsetzen . Gucken wir für SSH gucken wir erst mal nach der CA

https://wiki.ubuntuusers.de/CA/ ...

Nicht gelernt keine Sorge, ich weiß es noch, aber nicht mehr so 100 prozent. Ich hab's nicht gelernt baden. Es geht so also sie haben

Erst mal für jetzt von dem Webseite betrachtet er, Sie haben einen Schlüssel der heißt am Ende eben Key es gibt zwei Formate für Schlüsseln das muss ich noch mal genau nachgucken

Sie ja mal den Schlüssel und sie müssen unterscheiden. Sie haben das Zertifikat und es ist CRT also CRT Dateiendung steht für Zertifikat, aber Sie haben den Zertifikats Antrag. Darüber müssen wir auch noch nachdenken. Also sie haben drei Sachen ne also paar Sachen. Ich lies mal langsam auf.

Sie haben den Schlüssel KE Y

Dann haben sie das Zertifikat CRT

Dann haben Sie den den Zertifikats Antrag CSR

Und was sie haben also sie haben das Zertifikat selber das ist eben CRT

Und der Schlüssel ist mit dem Zertifikats signiert. Was heißt es, wenn sie ihn einfachen Schlüssel auf der Homepage haben ich gehe jetzt mal davon aus. Sie haben das Prinzip verstanden. Sie haben den Schlüssel signiert d.h. der Schlüssel ist mit dem Zertifikat versehen.

Jetzt haben sie die Zertifikat Autorität, also die Zertifikat Zertifizierungsstelle und die muss wiederum des Zertifikat CRTssignieren. Also der Schlüssel wird über das so ungefähr des Zertifikatssigniert und das Zertifikat wird über die CA signiert

Also sie haben die CA und die Zertifikate und den Schlüssel und die CA ist ne Einheit müssen Sie wissen und ich muss um den Schlüssel zu significa Zertifizierungs Einheit einen ein Zertifikats Antrag stellen. Des klingt ein bisschen verrückt. Weil wenn ich zum irgendein Amt gehe in Deutschland dann muss ich im Brief hinschicken und dann muss mich wohl oder übel geographisch über einige Grenzen hinweg setzen entweder per Post oder selber das Problem ist, dass es hier nicht der Fall ist. Auf meinem Linux Rechner ist ne CA und sie wissen was das Problem ist. Meine CA ist nicht anerkannt. Also ich möchte mich dann irgendwo im Internet mal melden und sagen der herr Vajda stellt ab jetzt Zertifikate aus

Soweit wird der herr Vajda jetzt erst mal nicht gehen und deswegen hat der Herr hat dieser Herr aus seiner Sicht eine vernünftige CA allerdings das glaubt ihm immer noch kein Mensch deswegen. Ich hab trotzdem mit CA auf meinem Computer. Also unterscheiden Sie zwischen einer CA in der Realität Briefing schicken zwei Tage abwarten die Beamte arbeiten dran. Schick zurück relativ fleißig. Haben Sie den Brief nach zwei Tagen wieder gut das ist in der Realität. So hier ist es anders. Die CA ist auf meinem Computer und Zertifikats. Antrag heißt nicht mühsam übers Internet ein Brief schicken oder ne E-Mail, sondern das ist auf meinem Computer. Ich muss diese CSR Datei erstellendann hab ich den Antrag geschickt und an das eigene Programm. Das ist eine Programm die CA und das liefert mir sozusagen das Zertifikat oder was auch immer so vom Prinzip müssen wir uns jetzt noch mal genauer anschauen.

Wie gesagt, es gibt zwei Formate das eine per und das andere ist der, soweit ich weiß ja probieren wir gleich mal aus

Jetzt erst mal langsam dann müssen wir auch noch paar Begriffe schlauer machen, damit es gut funktioniert und ich soweit ich sie sehe funktioniert es jetzt nur bei Openssl. Also eigentlich müsste ich ja rein theoretisch jeden Schlüssel signieren können. Wie gesagt wir sind bei SSH und wir sind bei unserem normalen Verschlüsselung Programm. Für unsere E-Mails müsste ich eigentlich auch zertifizieren können. Gucken wir nachher mal nach. Ich muss jetzt erst mal gucken. In diesem Beitrag sehe ich nicht wie das Programm wie die Zertifizierungs Einheit eigentlich heißt das erste was ich halt machen muss ich muss den Schlüssel erstellen Und wenn ich den Schlüssel er erstellt habe dann das Zertifikat bezieht sich auf den Schlüssel selber d.h. der Zertifizierungs Antrag wird nicht sozusagen von was anderem erstellt als von dem Programm was den Schlüssel erstellt. Der Zertifizierung Antrag wird von dem selben Programm erstellt und dann entsteht CSR und da schicke ich Ihnen die CA rein und in die CA schicke ich jetzt diesen CSR und in diesem CSR. Dies ist aus dem Schlüsselpark generiert worden kommt es CRT und dann bleiben CRT und der SchlüsselKEY und die bin ich auch beide in Apache zwei ein probieren wir's mal aus irgendwie Ich muss mal gucken wie heißt das Programm für die CA

openssl req -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr

https://www.digitalocean.com/community/tutorials/openssl-essentials-working-with-ssl-certificates-private-keys-and-csrs

...

Wie gesagt, meine Homepage benutzt HTTPS aber der Grund ist dafür, dass ich nicht eigene Zertifikat benutze und es gibt es cert Boot, falls Sie das kennen, relativ einfache Angelegenheit seine Zertifikate zu machen also sie müssen sich keine Sorgen machen meine Homepage benutzt httpsund SSL. Dann müssen Sie sich keine Sorge machen, wenn sie cert Boot und so würde ich das machen. Für einen normalen Menschen nicht deswegen weiß sie das mit den Zertifikaten nicht hinkriegen, sondern aus dem anderen Grund, weil sie halt die sie haben halt nicht offizielle Zertifikate d.h. selbst wenn sie ihre eigene CA benutzen die Zertifikate jeder Browser wird drum meckern deswegen benutzen Sie dieses certbot die Zertifikate auch selber in den Apache 2 ein also, da müssen sich keine Sorgen machen und deswegen geht's bei mir aber zurück zum Thema. Ich hab im letzten Beitrag habe ich den Befehl geliefert und jetzt müssen wir uns Augen liefern. Vor Augen führen ich sag's gleich.

openssl req -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr

Kurz und gut das einzige, was uns unterscheidet, sind sozusagen die Option beim beim erzeugen des Schlüssels bei bei SSH

ssh-keygen  die Option minus T angeben und dahinter kommt dann kommt dann der Verschlüsselung, Algorithmus, aber nicht der Verschlüsselung Algorithmus, sondern der Algorithmus zum erzeugen des Paares. Also hier müssen wir noch mal genau lernen wie die heißen. Ich weiß ja noch die normalen Algorithmen pro Idea wie IKEA und das andere. Das andere AES 192 und so weiter und die zwei Fisch mit Blasen und zwei Fischen und so weiter und das wissen Sie alles noch gut und jetzt darum und die Camelia Slipeinlagen und so weiter beziehungsweise Damen binden. Gut das ist das eine und jetzt aber der nächste Teil hier müssen wir jetzt dann noch lernen, wie die Algorithmen zur Erzeugung des Schlüsselpasses heißen die heißen unter anderem RSA und DSA so ungefähr wie RNA und DNA. Nur eben RSA und DSA so das ist eine und jetzt müssen wir aufpassen. Hier lautet wir müssen, wenn wir SSH, ich muss es hinschreiben, weil das kann der Diktierer nicht

ssh-keygen
Dann müssen wir hier sozusagen. Wenn wir den Schlüssel erzeugen, müssen wir nicht die Option angeben, müssen wir uns einfach merken, damit es funktioniert. Wir sollen Schlüssel erzeugen, sondern minus T heißt einfach jetzt kommt der Algorithmus für das erzeugen des Schlüsselhas und da schreiben wir zum Beispiel hinter Klein RSA merken wir uns einfach alle diese Algorithmen zu erzeugen np. Und dann können wir jetzt die Option angeben. Also wie gesagt, in der Informatik heißen die Wie soll ich sagen zahlen die zweier Potenzen 1024 2048 4096 8192 müssen wir sozusagen. Ich weiß nicht genau was jetzt konkret ist. Die Länge des Schlüsselpaares oder was weiß ich was die Länge der Schlüssel müssen wir angeben das machen wir hier minus B und bei Open SSL heißt es

Was dieses req ist ich hab keine Ahnung muss ich nach nachgucken, was es ist, weiß ich nicht und jetzt müssen wir angeben als Option newkey Also hier ist die Option wieder anders. Newkey.

Also minus newkey

Dann gehen wir wieder den ich sage mal Algorithmus zur Erzeugung des Schlüsselpaares rsa zum Beispiel und jetzt kommt nicht eine Extra Option für die Schlüssellänge, sondern jetzt machen wir ein: hinter den Algorithmus gutes kann man sich vorstellen jetzt müssen wir natürlich den Schlüssel selber ausgeben. Kann sein, dass er den sonst direkt anzeigt dann machen wir minus Key out ja das ist jetzt ist die Frage wo ist unser Zertifizierungs Antrag? Wir haben ja jetzt den Schlüssel und also die Zertifizierungs Einheit da hab ich vorher was nicht 100 prozent richtiges erzählt kann ja sein. Können wir mal nachgucken gibt es ein eigenes Programm für die CA können wir ja mal gucken was es gibt. Kann sein, dass es das nicht gibt. Es gibt natürlich sicher vereinheitlicht die Schlüssel Algorithmen sichern, also für Verschlüsselung privater und öffentlicher Keie. Ich weiß es nicht. Gerade jedenfalls hier in diesem Falle was SSL betrifft gehört die gehören die Zertifikate und der Zertifizierungs Antrag direkt zu SSL. Also wir müssen den Zertifizierung Antrag erstellen und dann kommt dieses Berühmte -out

Oh das haben wir vorher gesehen wenn wir das angeben bei einem Programm direkt auf der Konsole ausgegeben wenn wir es nicht angeben und ich glaub das können wir uns ja sparen und können einfach umlenken herauskommen bei diesem Programm in dem Fall der Zertifizierung Antrag und ich sage mal, es ist das gleiche Programm, was unseren Zertifizierung Antrag bearbeitet nämlich open SSL wird den Zertifizierung Antrag jetzt bearbeiten. Ich guck mich ein bisschen weiter rum warten ziehen. Ich fasse die Befehle erst mal zusammen.

#!/bin/bash
# (C) David Vajda
# 2025-04-22
# gpg uebung
gpg --generate-key
ssh-keygen -t rsa -b 4096
openssl req -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr

david@work:~$ openssl req -newkey rsa:2048 -nodes -keyout dvajda.de.key -out dvajda.de.csr
david@work:~$ ls dvajda.de.*
dvajda.de.csr  dvajda.de.key
david@work:~$

Kann ja sein ich hab sozusagen den Schlüssel. Das ist jetzt ne zusätzliche Option die wahrscheinlich nicht 100-prozentig gebräuchlich. Ich hab den Schlüssel aber mein Zertifikats Antrag ist verschwunden und nicht nur der Antrag sondern mein Schlüssel mein mein Zertifikat ist verschwunden. Den Schlüssel habe ich noch also muss ich neues Zertifikat erstellen, während der Schlüssel noch da ist, dann kann ich Sozusagen dann noch einen Zertifizierungs Antrag vom alten Schlüssel erstellen ist es ja jetzt nicht so besonders wichtig unbedingt erst mal

Und da gibt's die Option, dass ich den umgekehrten Weg gehe, während ich normalerweise ja sozusagen den Schlüssel habe. Das ist als letztes geblieben und Zertifizierungs Antrag ist weg und ich brauch ne neue CSR. Kann ja auch sein, dass ich das Zertifikat noch habe und den Schlüssel und dann kann ich sogar einen neuen Zertifizierungs Antrag stellen. Also das umgekehrt. Weil wenn ich die crt habe, brauche ich den Zertifikats Antrag ja also wenn ich den wenn ich die Zertifikat noch habe, wollte ich sagen, dann brauche ich den Zertifikats Antrag ja eigentlich nicht mehr.

Kann ich trotzdem machen, wenn ich möchte und jetzt muss ich vor allen Dingen erst mal wenn ich nur den Schlüssel habe also den einfachsten Weg dann muss ich jetzt sozusagen einfach das Zertifikat erstellen und ja was soll ich da großartig machen gute Frage, die Sache geht wohl ein bisschen einfacher

Das ist ein bisschen seltsam. Eigentlich könnte man was sagen, weil ich muss ja unbedingt das CSR erstellen also das ist vielleicht ein bisschen verwirrend. Ich brauch das CSR ja nicht. Also wenn ich das in Apache zwei einbinde, dann muss ich den Zertifikats Antrag ja nicht einbinden das ist ja sozusagen. Wie soll man sagen technisch einfach wie wenn ich zur Post gehe und schick da einen Antrag ab aber das macht ja hier das eigene Programm gut also ich muss den Antrag nicht mit in die Homepage einbinden. Ich muss das Zertifikat und den Schlüssel einbinden. Jetzt muss ich aber den Antrag stellen um sozusagen den ans Programm zu schicken. Kurze Frage das ist das gleiche Programm was den Schlüssel erstellt wie den Zertifikats Antrag wie das Zertifikat dann klingt es natürlich. Es ist ein bisschen komisch. Natürlich hab ich den Zertifikats Antrag sag ich mal deswegen weil sich das hier um Informatik handelt und es vereinheitlicht. Trotzdem ich kann mir vom programmtechnischen den Umweg ersparen. Ich kann die tschuldigung ich lass ihn in Ruhe rede gleich nicht weiter. Ich mach gleich einfach. Ich kann einfach das Zertifikat mit samt den Schlüssel erzeugen.

Das mag vielleicht ein bisschen verwirrend sein, weil der Zertifikat Antrag ist wichtig. Wenn Sie das in der Informatik nicht geregelt haben, dann können Sie keinen Zertifikat Antrag stellen. Das ist halt das Problem in diesem Programm ist es jetzt einfach so Sie erstellen den Schlüssel und da ist das selbe Programm ist was auch die CA ist und alles weitere können Sie gleich das Zertifikat mit erstellen und dann haben Sie beides und das müssen Sie in Apache zwei einbinden und dann haben sie schon geschafft . Ganz einfach müssen wir uns trotzdem noch ein klein bisschen schlauer machen aber wir sind fast soweit

Und was unterscheidet es generell voneinander? Also passen Sie auf

Der Unterschied besteht darin, dass sie sozusagen die normalen Schlüsselpaare haben. Wenn sie ihren Freund ihren öffentlichen Schlüssel geben, dann verschlüsselt er damit irgendwas. Dann schickt er ihn die verschlüsselte Nachricht. Keiner kann mehr lesen aber sie können mit dem privaten, die sie erzeugt haben entschlüsseln. Das ist Problem Nummer eins Problem Nummer zwei SSH da schicken Sie natürlich nicht ihren Freund im Computer irgendein Zertifikat und er muss in den E-Mails gucken sondern sie müssen das mit bestimmten Programm hinschicken. Das ssh-key-copy oder wie auch immer spezielles Programm zum SSH Schlüssel kopieren und dann landet sozusagen der öffentliche Schlüssel auf dem anderen Rechner. Das ist der zweite Punkt und was passiert hier bei uns? Bei Apache zwei ist der Unterschied im Internet.

Unseren lokalen Rechner im SSH, die werden uns glauben, dass wir die richtigen sind. Im Netz weiß keiner wer wir sind. Deswegen müssen wir uns Zertifikat ausstellen und der Unterschied besteht darin der Schlüssel. Es wird natürlich nur der öffentliche freigegeben das macht der Apache zwei selber damit haben wir nicht viel zu tun bei der Handhabung der Browser wird den von Apache zwei abrufen so ganz einfach also müssen wir den Schlüssel in den Apache zwei einbinden. Das ist die selbe wie wenn wir unseren Freund oder unsere Freundin halt den öffentlichen Schlüssel schicken. Der Unterschied hier ist der in Apache 2 in den Web Server in dem Konfi Files integriert. Das ist der eine Teil Und wir müssen aber das Zertifikat reinmachen den Umweg mit dem Zertifikat Antrag können wir uns vom Programm ersparen. Wir stellen auch das Zertifikat und beides den beides tun wir gleichzeitig sozusagen in der Apache zwei rein und damit ist das Problem erledigt. Wenn wir unseren Kumpan unseren Schlüssel geben den öffentlichen dann haben wir den übermittelt. In diesem Fall tun wir den den Apache zwei einbinden und damit haben wir das selbe gemacht, weil Apache zwei liefert in einem Browser weiterdas Problem eigentlich erledigt letztenendes ich geh kurz eine rauchen und dann machen wir weiter.

\includegraphics[width=\textwidth]{Screenshot_220250422_140114.png} \includegraphics[width=\textwidth]{Screenshot_220250422_140119.png}

openssl req -newkey rsa:2048 -nodes -keyout dvajda.de.key -x509 -days 365 -out dvajda.de.crt
david@work:~$ ls dvajda.de.*
dvajda.de.crt  dvajda.de.csr  dvajda.de.key
david@work:~$

\includegraphics[width=\textwidth]{Screenshot_220250422_140119.png}

Was macht denn jetzt den Unterschied zwischen diesen zwei befehlen aus nicht postet die hier das eine scheint ein Zertifikats Antrag zu stellen und das andere scheint ein Zertifikat zu erstellen. Das Problem ist wahrscheinlich gucken Sie mal der Befehl zieht genau gleich aus Also, man kann die fast nicht unterscheiden beim einen Erzeugtes CRT und beim anderen CSR. Man kann sie fast nicht unterscheiden. Ich sag gleich, wo der Unterschied liegt, wenn sie sagen, Sie machen minus out CRT und sie machen minus out CSR und das Programm wird sich da Nachrichten richten, was sie für ne Datei Endung haben dann sag ich es ist kein Linux Programm mehr. Ich kann's mir nicht vorstellen weil egal was sie machen ob sie hinten es gibt ja auch die Endung pem und DER danach wird sich das nicht richten, sondern der Unterschied ist dieses minus X 50 neun wenn man sich das anschaut, dann sieht man hier das ist wohl der Unterschied wegen dem minus X5 109 wird es eine zum zum Zertifikat und das andere zum Zertifikats Antrag probieren wir's aus

openssl-x509
openssl-x509 - Certificate display and signing command Da steht es des x509 ist ein eigener Command, also ein eigenes Kommando und d.h. Einfach ich weiß nicht wo der 509 herkommt aber ich sag mal das ist einfach ein eigenes Kommando. So steht da. Ich hab die Hilfe von dem Open SSL abgerufen. Die war wenig hilfreich aber es ist ein eigenes Kommando und es steht einfach dafür, dass das der Schlüssel signiert wird. Der Schlüssel wird signiert dafür steht eben dieses X509 das ist Punkt Nummer eins und Punkt Nummer zwei. Es wird auch das Zertifikat gleich mit erstellt dafür steht X509. Ansonsten muss ich mir nur merken bei Openssl. Newkey um den neuen Schlüssel zu erstellen und keyout das ist sicher sinnvoll wofür das req ist, weiß ich nicht und wofür das minus Node ist, weiß ich auch nicht dann haben wir alles beisammen und jetzt müssen wir das eigentlich mal ein Apache zwei einbinden in dem eigenen Rechner hier weil das ist nicht mein Web Server das ist mein Arbeitsrechner und da kann ich beliebig rum manipulieren da kriege ich keine Angst und das zweite ist Apache die zwei müssen wir halt das config file schreiben das übliche das ist Teil der Aufgabe sozusagen Und da wissen wir, wir machen Virtual Host d.h. einfach Die übliche sollten wir auch wissen, wie es geht und dann müssen wir halt Dokument Root und so weiter angeben wir müssen sozusagen den Server Namen angeben und so weiter die sollten wir auswendig wissen. Das ist Teil der Standardübung die wir immer machen. Wie gesagt ich hab gesagt Verschlüsselung ist Standard Übung aber auch die Verschlüsselung Algorithmen vom Namen und die Algorithmen zur Erzeugung des Schlüsselpaares ist Teil des Standard Übungsprogramms,das haben wir jetzt und jetzt kommt der zweite Teil Jetzt müssen wir zu dem bisherigen was wir auch in Apache zwei normalerweise wissen müssen wir jetzt noch lernen, wie heißen sozusagen die Option die stehen in der/etc./Apache zwei und dann kommt diese ganzen Namen. Sites enable Hier stehen sozusagen die ganzen verschiedenen Domains, also die ganzen verschiedenen vhosts und jetzt müssen wir hier eintragen zu dem ganzen Zertifikat heißt. Probier mal aus.

\includegraphics[width=\textwidth]{Screenshot_220250422_140441.png} \includegraphics[width=\textwidth]{Screenshot_220250422_140540.png}

\includegraphics[width=\textwidth]{Screenshot_220250422_141214.png} \includegraphics[width=\textwidth]{Screenshot_220250422_141315.png}

<VirtualHost *.*>
        DocumentRoot /var/www/html/www20250422certtest
        ServerName www20250422certtest
        ServerAdmin david@dvajda.de
</VirtualHost>

\includegraphics[width=\textwidth]{Screenshot_220250422_141405.png}

Vermutlich so wie im letzten Beitrag vermutlich so wie im letzten Beitrag. Muss es aussehen. Muss genau kurz nachgucken, ob ich Rechtschreibfehler drin hab. Dann müssen wir den Domain Namen in der /etc/hosts einrichten, damit halt der Name bekannt ist, weil wir greifen jetzt nicht mehr über Local Host darauf zu, sondern wir greifen jetzt über diesen Namen, den ich ihr gegeben habe. Den tragen wir einfach ein und wenn ich den dann anpingen, dann lande ich im selben Rechner wenn ich die richtige IP Adresse angegeben habe, dann muss ich machen dann folgendes ein Moment dann muss ich das Dokument Root angeben mit diesem etwas komischen Namen hier Das muss ich neu eröffnen. Da tue ich irgend ne HTML Datei rein. Die heißt Index.html damit sie sozusagen gleich aufgerufen wird. Das ist der eine Teil und dann gibt's noch den letzten Teil. Ich muss noch mal die Zertifikate und den Schlüssel neu erzeugen, weil der Name ist ja jetzt nicht David DE sondern der Name ist ja jetzt, wie ich diesen komischen Server hier genannt habe und dann Virtual Horst so heißt er jetzt und genauso muss auch das Zertifikat heißen und na wenn ich das dann habe, dann muss ich das entsprechend einbinden und dann muss ich mal gucken, was passiert, wenn ich diesen Namen aufrufe in meinem Rechner, auf dem auf mich selber zu sozusagen

root@work:/etc/apache2/sites-enabled# cat lo2.conf
<VirtualHost 127.0.0.2:80>
        ServerName localhost2
        ServerAdmin david@dvajda.de
        DocumentRoot /var/www/html/html1/
</VirtualHost>
root@work:/etc/apache2/sites-enabled# cat
certtest20250422.conf  lo2.conf               lo3.conf               lo4.conf               lo5.conf
root@work:/etc/apache2/sites-enabled# cat certtest20250422.conf
<VirtualHost *.*>
        DocumentRoot /var/www/html/www20250422certtest
        ServerName www20250422certtest
        ServerAdmin david@dvajda.de
</VirtualHost>
root@work:/etc/apache2/sites-enabled#

\includegraphics[width=\textwidth]{Screenshot_220250422_141946.png} \includegraphics[width=\textwidth]{Screenshot_220250422_141710.png}

root@work:/etc/apache2/sites-enabled# cat lo2.conf
<VirtualHost 127.0.0.2:80>
        ServerName localhost2
        ServerAdmin david@dvajda.de
        DocumentRoot /var/www/html/html1/
</VirtualHost>
root@work:/etc/apache2/sites-enabled# cat
certtest20250422.conf  lo2.conf               lo3.conf               lo4.conf               lo5.conf
root@work:/etc/apache2/sites-enabled# cat certtest20250422.conf
<VirtualHost *.*>
        DocumentRoot /var/www/html/www20250422certtest
        ServerName www20250422certtest
        ServerAdmin david@dvajda.de
</VirtualHost>
root@work:/etc/apache2/sites-enabled# mkdir /var/www/html/www20250422certtest
root@work:/etc/apache2/sites-enabled# touch /var/www/html/www20250422certtest/index.html
root@work:/etc/apache2/sites-enabled# nano /var/www/html/www20250422certtest/index.html
root@work:/etc/apache2/sites-enabled# nano /etc/hosts
hosts        hosts.allow  hosts.deny
root@work:/etc/apache2/sites-enabled# nano /etc/hosts
hosts        hosts.allow  hosts.deny
root@work:/etc/apache2/sites-enabled# nano /etc/hosts
root@work:/etc/apache2/sites-enabled# cat /etc/hosts
127.0.0.1       localhost
192.168.178.22  work work.dvajda.de
192.168.178.35  www1 www1.dvajda.de
127.0.0.2       localhost2
127.0.0.3       localhost3
127.0.0.4       localhost4
127.0.0.5       localhost5
127.0.0.1       www20250422certtest
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
root@work:/etc/apache2/sites-enabled# ping www20250422certtest
PING www20250422certtest (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.062 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.062 ms
^C
--- www20250422certtest ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1007ms
rtt min/avg/max/mdev = 0.062/0.062/0.062/0.000 ms
root@work:/etc/apache2/sites-enabled#

\includegraphics[width=\textwidth]{Screenshot_220250422_142020.png}

Prima, der Name ist erreichbar. Jetzt müssen wir Apache zwei neustarten.

\includegraphics[width=\textwidth]{Screenshot_220250422_141710.png} \includegraphics[width=\textwidth]{Screenshot_220250422_141946.png} \includegraphics[width=\textwidth]{Screenshot_220250422_142020.png} \includegraphics[width=\textwidth]{Screenshot_220250422_142124.png} \includegraphics[width=\textwidth]{Screenshot_220250422_142726.png} \includegraphics[width=\textwidth]{Screenshot_220250422_143012.png} \includegraphics[width=\textwidth]{Screenshot_220250422_143359.png} \includegraphics[width=\textwidth]{Screenshot_220250422_143518.png} \includegraphics[width=\textwidth]{Screenshot_220250422_143547.png} \includegraphics[width=\textwidth]{Screenshot_220250422_145156.png} \includegraphics[width=\textwidth]{Screenshot_220250422_145203.png} \includegraphics[width=\textwidth]{Screenshot_220250422_145248.png} \includegraphics[width=\textwidth]{Screenshot_220250422_145254.png}

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.62 (Debian) Server at www.dvajda.de Port 443</address>
</body></html>
closed
david@work:~$ host: www.dvajda.de

Der zweite Teil. Ich war jetzt unter der Dusche schon mal okay jetzt kommt der zweite Teil. Ich kann jetzt nicht genau sagen, was das Problem ist, dass hier Bad request kommt. Ich weiß es nicht muss man untersuchen. Jedenfalls müssen wir uns jetzt am besten zwei Sachen an der Stelle merken. Wir müssen zunächst jetzt uns dieses also jetzt die kleinen Teilschritte die müssen erledigt werden. Wir müssen uns merken, dass wir dieses open SSL benutzen. Da sehe ich bei mir sowieso Nachholbedarf mit den Zertifikaten. Also ich kann mit Zertifikaten umgehen. Ich möcht es jetzt nicht zu lang mit der sozusagen Zertifizierungsstelle CA, das weiß ich soweit kriege ich auf die Reihe und sie haben Schlüssel und sie haben dazu noch ein Zertifikat und die Zertifizierungsstelle hatten Zertifikat und so weiter das kriege ich noch auf die Reihe. Nur wir müssen schon bisschen gucken also ich hab ein Problem das hat jeder wahrscheinlich mit dem Einbau von Zertifikaten in Apache zwei hab ich ein Problem das ist natürlich weiß sie haben dir sozusagen nicht global auf der Welt zertifiziert d.h. sie kommt sowieso nicht rein aber ich Krieg da immer wieder Schwierigkeiten, das müssen wir üben. Also hier müssen wir üben mit den Zertifikaten für Apache zwei selber würde ich jetzt mal vorschlagen dann müssen wir gucken. Trotzdem open SSL hat jetzt mehrere Seiten ein bisschen einlesen. Irgendwas tun jedenfalls. Wir müssen uns open SSL merken und wir brauchen SSH das müssen wir genauso lernen mit den Schlüsseln und so weiter Zertifikaten und alles andere auch. Also wo wir es noch finden, gpg und so weiter. Also hier müssen wir konkret üben und dann haben wir noch ein drittes Problem. Wir haben noch ein drittes Problem. Wir müssen sozusagen. Wir müssen vor allem mit der Eingabe arbeiten. Wir müssen gucken wie kriegen wir jetzt die die Verbindung von unserem normalen Programm zu Openssl her ich probier's mal mit Umleitung. Ich denk das ist keine gute Sache ist seitdem wir Schreiben Skript für halt die Konsole müssen wir trotzdem gucken finden wir in Python drei irgendwas entsprechendes müssen wir mal gucken. Ich ich merk mir jetzt mal, ob man SSL und lese mir ein paar Sachen dazu durch sozusagen auf Ubuntu User und so weiter gucken wir mal was rauskommt

Wie gesagt, das mit gpg kriege ich auf die Reihe müssen wir vielleicht einfach normales Übungen sagen wir Übung Kreis machen Übung Tour wie immer müssen wir dazu rechnen Mache ich einfach gleich mal. Ich mach paar Übungen mit gpg was verschlüsseln und entschlüsseln und gucken wir gleich, dass wir sozusagen hier die Verbindung zu SSH und open SSL gleich mal hinkriegen.<

Klassische Verschlüsselung mit gpg folgt jetzt ne Übung

Also Übung mit gpg beginnt

#!/bin/bash
# (C) David Vajda
# 2025-04-22
# gpg uebung

Die Klassiker, unter denen die Klassiker unter dem also erst mal minus minus Help müssen wir immer aufrufen um zu gucken was gibt's zu tun wenn wir es gerade nicht wissen so ganz trotzdem das erste was wir brauchen ist erst mal List Secret Keys, das brauchen List Public Keys und List private Keys Und wir müssen machen, was wir noch machen müssen. Wir müssen am generate Key brauchen wir so generell als Option. Diesmal die einen Sachen. Ich fang gleich mal an.

-K, --list-secret-keys             Liste der geheimen Schl"ussel
     --generate-key                 Ein neues Schl"usselpaar erzeugen
     --quick-generate-key           Schnell ein neues Schl"usselpaar erzeugen

gpg --generate-key
Es tut schon mal und die üblichen abfragen sozusagen die üblichen abfragen. Vorname Nachname wir müssen wahrscheinlich können wir jetzt wir haben ja ich hab's auswendig gelernt sie wahrscheinlich nicht oder sie wissen schon. Entweder sie sind einer der klugen Leute, die schon wissen oder sie ist in einer der weniger klugen Leute, die immer überall zugucken, aber immer noch nichts wissen. Ich weiß es, wie es geht.
AES
BLOWFISH
TWOFISH
Cammelia
und so weiter also unsere Verschlüsselung müsste jetzt hier gleich auftauchen welchen Verschlüsselung Algorithmus ich nehmen

So, das hat er gemacht. Er hat mich nicht nach dem Verschlüsselung Algorithmus gefragt. Ich glaub es gibt noch mal die gleiche Option, dass es ein längere Version nimmt. Also sie kennt es ja. Wenn man irgendwas macht, dann kann ich jetzt noch mal die Full generate key Genau da steht es und zeige das, was in der Hilfe steht

--full-generate-key            Ein neues Schl"usselpaar erzeugen (alle Optionen)


Bitte wählen Sie, welche Art von Schl"ussel Sie m"ochten:
   (1) RSA und RSA (voreingestellt)
   (2) DSA und Elgamal
   (3) DSA (nur signieren/beglaubigen)
   (4) RSA (nur signieren/beglaubigen)
   (14) Vorhandener Schl"ussel auf der Karte
Ihre Auswahl?

\includegraphics[width=\textwidth]{Screenshot_220250422_102920.png} \includegraphics[width=\textwidth]{Screenshot_220250422_102947.png}

Wir müssen wohl nacharbeiten, also ist es tatsächlich keiner der der Verschlüsselung Algorithmen, so wie ich sie kenne AES 256 oder wie der heißt oder 192 glaube ich oder sonst was, sondern hier steht RSA und DSA muss nachgucken, was das ist

Hab mir die Liste angeguckt ich hab die hab die nur zur Hälfte gelernt beziehungsweise ich hab sie nicht nur zur Hälfte gelernt. Es sind doch Verschlüsselung Algorithmenssehe ich hier die Liste die hier steht. Ich zeige Screenshot und macht es rein ist das sind auch Verschlüsselung Algorithmen, das liegt anderen an den Medien, die ich hier vor den Augen hab. Die sind gar nicht schlecht, weil ich hab's auswendig gelerntNur was hier in der Tabelle abgebildet ist, ist weniger als es in Wirklichkeit gibt. Hier stehen noch öffentlich also wir müssen ach so es gibt ein öffentlichen Schlüssel hat noch mal ne andere Format. Ich zeige's kurz

Öff.Schl"ussel: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Verschl"u.: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Komprimierung: nicht komprimiert, ZIP, ZLIB, BZIP2
IDEA  64  128  Alternative zum unsicheren DES-Algorithmus
3DES  64  56, 112, 168  Nachfolgeversion des DES-Algorithmus (auch Triple-DES genannt)
CAST5  64  128  In der Praxis wenig verbreitet
BLOWFISH  64  128  Von Sicherheitsguru Bruce Schneier entworfen
AES  128  128  Derzeit am weitesten verbreitet
AES192  192
AES256  256
TWOFISH  128  256  Nachfolgeversion von Blowfish
CAMELLIA128  128  128  Vergleichbar mit AES
CAMELLIA192  192
CAMELLIA256  256
\includegraphics[width=\textwidth]{Screenshot_220250422_103126.png} \includegraphics[width=\textwidth]{Screenshot_220250422_103210.png}

Sehen, dann müssen wir nacharbeiten. Ich hab das ja auswendig gelernt weiß ich eigentlich auswendig 3des das merke ich mir wie es ist. Dann kommt cast fünf das kann ich mir umgekehrt genauso merken klingt vom Norden nicht kommunizierter AES hab ich ja gesagt die zwei Fisch hab ich auch gesagt und was haben wir noch dieses idea das hab ich mir prima gemerkt wie IKEA nur mit IKEA pro Idee oder so so merke ich mir das IKEA pro Idea irgendwie so und dann diese Camelia. Ich denk da halt immer an Slipeinlagen aber das ist auch kein Problem. Sollte funktionieren

Nur was ich sehe, haben wir hier öffentliche Schlüssel und Verschlüsselung Schlüssel da müssen wir ein bisschen unterscheiden. Also weil tatsächlich sehe ich hier wenn man oben in die Tabelle reinkuckt die öffentlichen Schlüssel ändern nicht an die verschlüsselten Schlüssel dass hier müssen unterscheiden diese Verschlüsselung die kann ich das sind die Verschlüsselung Verfahren. Ach so das kann ich unterscheiden. Also wie gesagt ich kann dir auswendig keine Sorge ich kann nicht unterscheiden vom Namen her aber was ich hier sehe öffentliche Schlüssel sind noch mal anders ich zeige sie kurz das müssen wir auch noch nachgucken.

ich hab's mir gemerkt, ich hab dafür kein zusammenhängendes Dokument doch ich hab den ascii Code nämlich bei RS 232 Oh na den habe ich den habe ich bei dem Mikrocontroller. Damit lerne ich denen also das gehört zu einem Thema und wenn sie unten reingucken, da stehen die Verschlüsselungsalgorithmen, die hab ich so auswendig gelernt. Jetzt müssen wir das ein bisschen ergänzen, egal was es ist. Wir lern jetzt einfach auswendig, brauchen wir gar nicht. Müssen nicht jetzt hier ausbauen sondern jetzt merken wir uns das zusätzlich folgendes

(C) David Vajda
2025-03-31
TCP/IP auswendig

ASCII Code

NUL     Nullzeichen
SOH     Start of Heading
STX     Start of Text
ETX     End of Text
EOT     End of Transmission
ETB     End of Transmission Block
LF      Line Feed
FF      Form Feed
HT      Horizontal Tab
VT      Vertical Tab
CR      Carriage Return
DEL     Delete
BEL     Bell - Klingel
CAN     Cancel
ESC     Escape?
SI      Shift Ins
SO      Shift Out
DC1     Device Control 1
... DC4

RS232 - CCITT-1

GND - Ground
TxD - Transmit Data
RxD - Recieve Data
CTS - Clear 2 send
RTS - Ready 2 send
DSR - Data Set Ready
DTR - Data Terminal Ready

Terminal - Datenendgeraet
Modem - Datenuebertragungsgeraet

1 Start Bit
1 oder 2 Stop Bit
keine gerade ungerade Paritaet
5 6 7 8 oder 9 Data Bits

Baudrate
    1200
    2400
    4800
    9600
    ...

Baud: 1 Zeichen pro Sekunde des Entsprechenden Zeichensatzes

UBRR - USART Baud Rate Register
UBRRL UBRRH
UCSRC UCSRB UCSRA - USART Controll and Status Register
UDR - USART Data Register

TXEN - Transmit Enable
RXEN - Recieve Enable

UDRE - USART Data Register Empty
URSEL - ...
UCSZ1 UCSZ0

Data Flow Controll
    Hardware
    Software
    Protokoll

Application Layer Ports
    15  netstat
    20  ftp
    22  ssh
    25  smtp
    53  dns
    80  http
    110 pop3
    143 imap
    443 https
    587 smtps/imaps?

DNS
    A       IPv4 - name
    AAAA    IPv6 - name
    PTR     Pointer Record
    TXT     Text Record
    CNAME   Cannonical Name Record - kanonisch - Richtschnur
    MX      mail eXchange Record

TCP
    Source Port (2 Byte)
    Destination Port (2 Byte)
    Sequence Number (4 Byte)
    Acknowlegement Number (4 Byte)
    Data Offset (5 Bit)
    Reserved
    Flags
        ...
    Recieve Window
    Checksum
    Urgent Pointer
    Options?

IP
    Source Address
    Destination Address
    TTL - Time 2 Live
    DSCP -
    IHL
    ...

Binarys - TCP/IP
    iptables ifconfig ip
    route traceroute tracepath
    telnet
    netstat
    ping
    wget
    nslookup
    whois
    ...

iptables
    chains
    tables

    tables
        filter
        nat
        mangle
        raw

    chains
        INPUT
        PREROUTING
        FORWARD
        POSTROUTING
        OUTPUT

    ACTIONS
        DROP
        ACCEPT
        REJECT
        LOG
        ...

    -d DESTINATION ADDRESS
    -s SOURCE ADDRESS

    -dport DESTINATION PORT
    -sport SOURCE PORT

    -p PROTOCOLL
        icmp/tcp/udp

    -j ACTION

GPG - Encryption Algorithms
    IDEA 3DES CAST5 BLOWFISH
    AES AES-192 AES-256
    TWOFISH
    CAMELLIA-192 CAMELLIA-256 CAMELLIA-512



GPG - Encryption Algorithms
    IDEA 3DES CAST5 BLOWFISH
    AES AES-192 AES-256
    TWOFISH
    CAMELLIA-192 CAMELLIA-256 CAMELLIA-512

Öff.Schl"ussel: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Verschl"u.: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224

Die komplizierte Variante hat auch probiert. Jetzt müssen wir was verschlüsseln.

Ich glaube, wir müssen erst mal den Schlüssel ausgeben

Du lässt dich jetzt die Schlüssel auf das seh ich ja auch genau. Dann gucke ich, dass ich dir irgendwie exportiert. Es gibt halt zwei Varianten die zu exportieren. Die eine ist lesbar die andere nicht, gucke ich bei Ubuntu User nach

david@work:~$ gpg --list-key
gpg: "Trust-DB" wird "uberpr"uft
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: Tiefe: 0  g"ultig:   2  signiert:   0  Vertrauen: 0-, 0q, 0n, 0m, 0f, 2u
gpg: nächste "Trust-DB"-Pflicht"uberpr"ufung am 2027-04-22
/home/david/.gnupg/pubring.kbx
------------------------------
pub   rsa3072 2025-04-22 [SC] [verfällt: 2027-04-22]
      0A003F705CB27C75C03396888F598D1A2CD558F2
uid        [ ultimativ ] David Vajda <david@dvajda.de>
sub   rsa3072 2025-04-22 [E] [verfällt: 2027-04-22]

pub   rsa1024 2025-04-22 [SC]
      C3723FDC6BE63EFBDD11FC16DBF063341D43F2C8
uid        [ ultimativ ] David Vajda <david@dvajda.de>
sub   rsa1024 2025-04-22 [E]

david@work:~$

Probiere jetzt mal aus dem Schlüssel anhand dieser ID dazu zu exportieren. Wir sehen da die ID von dem Schlüssel oder den Fingerprint das weiß ich jetzt nicht. Ich probier's mal an anhand dessen zu exportieren.

Hat was getan, dass es jetzt ohne Ubuntu User ich poste noch mal den Screenshot, aber es hat was gemacht

david@work:~$ gpg --list-key
gpg: "Trust-DB" wird "uberpr"uft
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: Tiefe: 0  g"ultig:   2  signiert:   0  Vertrauen: 0-, 0q, 0n, 0m, 0f, 2u
gpg: nächste "Trust-DB"-Pflicht"uberpr"ufung am 2027-04-22
/home/david/.gnupg/pubring.kbx
------------------------------
pub   rsa3072 2025-04-22 [SC] [verfällt: 2027-04-22]
      0A003F705CB27C75C03396888F598D1A2CD558F2
uid        [ ultimativ ] David Vajda <david@dvajda.de>
sub   rsa3072 2025-04-22 [E] [verfällt: 2027-04-22]

pub   rsa1024 2025-04-22 [SC]
      C3723FDC6BE63EFBDD11FC16DBF063341D43F2C8
uid        [ ultimativ ] David Vajda <david@dvajda.de>
sub   rsa1024 2025-04-22 [E]

david@work:~$ gpg --export 0A003F705CB27C75C03396888F598D1A2CD558F2
\includegraphics[width=\textwidth]{Screenshot_220250422_105627.png} \includegraphics[width=\textwidth]{Screenshot_220250422_105932.png}

\includegraphics[width=\textwidth]{Screenshot_220250422_110029.png}

gpg -a --output gpg-key --export <Schl"ussel-ID oder Name>
gpg -a --export <Schl"ussel-ID oder Name> | tee gpg-key

Das hab ich tatsächlich gemacht da hab ich tatsächlich richtig gemacht mit dem Export und hier steht das ist die ID ist also stimmt schon. Der Schlüssel hat Fingerprint und ne ID und tatsächlich muss ihm das Export die Schlüssel ID. Jetzt brauche ich aber Output ja gut, das brauche ich eigentlich nichtoder schon weil ich kann sie einfach umleiten und am minus A muss ich jedenfalls angeben das ist das entscheidende probieren wir wir's kurz aus.

david@work:~$ gpg -a --export 0A003F705CB27C75C03396888F598D1A2CD558F2
\includegraphics[width=\textwidth]{Screenshot_220250422_110036.png} \includegraphics[width=\textwidth]{Screenshot_220250422_110340.png} \includegraphics[width=\textwidth]{Screenshot_220250422_112505.png} \includegraphics[width=\textwidth]{Screenshot_220250422_113709.png} \includegraphics[width=\textwidth]{Screenshot_220250422_113905.png}

Tatsächlich minus A macht es lesbar und es tut gut und jetzt gucken wir ich kann's ja einfach umleiten. Ich glaub dann hab ich einfach den öffentlichen Schlüssel exportiert. Den kann ich woanders einbauen. Können wir mal gucken ich hab jetzt keine Lust einen anderen Computer zu öffnen oder wir nehmen den Server und ich integriere den Schlüssel in den Server als öffentlichen Schlüssel und verschlüsselte mal was auf unseren Server. In dem Fall erlaube ich diesmal, obwohl ich das nicht so gern mache.

\includegraphics[width=\textwidth]{Screenshot_220250422_110340.png}

david@work:~$ gpg -a --export C3723FDC6BE63EFBDD11FC16DBF063341D43F2C8 > key20250422.asc
-----BEGIN PGP PUBLIC KEY BLOCK-----

mI0EaAdY7QEEAMUiZX47Ao6RgNiES9NCw1cOUNDmQ7qLLRgokDvG4BxTyYTNZIJW
Lw1CKCwWGT3XetIZXHvhEBhuS3TeuLcVoa3hatqEQPV9CMSLBH4q0Lf/8OCqv/pl
7EcxI9utZ2e8ujNpoQdsTWxIhxLdXaPa/cTBxGJog2srJsXblkopz0ijABEBAAG0
HURhdmlkIFZhamRhIDxkYXZpZEBkdmFqZGEuZGU+iM4EEwEKADgWIQTDcj/ca+Y+
+90R/Bbb8GM0HUPyyAUCaAdY7QIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAK
CRDb8GM0HUPyyJtwA/9duSKhckXhWQ97g8JRY8Cek1yOIgkbpAfYYA8lftuOjzTt
C9MJaC1RjlCQx6kXr+z5pbIlHc3TlGq/EF2H7YOwTxN6dgpu8hZl6IiK+wO6Ghig
S7aq/MSkoawTbDwpCr6j2on6xpIdyqi1Omz8gzRzyIb6RrB9WcO09rKvBTMpZbiN
BGgHWO0BBADdL1y8C9/di4hcjhGz9RApK2jRdhIFa7jFiRkxIYPS2EL2thm070E1
kl4JEADYAKeGKbchx65sVAhj2R7/vQ1uSMEno/CRou7h2EZBAEciq8SUg0cM1zMZ
YQZJOI/JaJuCoqf5kl+W2zYR0uAOZDFH4kYBkSD3fP0TqZIicxNH4QARAQABiLYE
GAEKACAWIQTDcj/ca+Y++90R/Bbb8GM0HUPyyAUCaAdY7QIbDAAKCRDb8GM0HUPy
yHTkA/oCeSXBFR9VWDLG6nyzYPRiFKyyGnOov2H8Qd9cYt+qPbDreaxU4IZ4igwS
+Kpv5A5VBVczO9ZtTnyn/+UMUzNoNZkT2MHYkxaGFjjOzgRQ7zv5Kyt+OhKdTIDJ
b3h1fpBJUbjYPZOppA0GcpbbG8mkrypV9m4EF51Y/LpRODfQgg==
=PLPP
-----END PGP PUBLIC KEY BLOCK-----

Jetzt tue ich den einfach mal auf den Server jetzt tue ich den auf den Server und ich probier jetzt aus auf dem Server und Text zu verschlüsseln

Ich mach die restlichen Operationen erst mal ohne ohne den anderen Computer. Ich nehme jetzt einfach Encrypt und Decrypt. Das ist jetzt wie gesagt Teil unserer Standard Aufgaben.

Dann muss ich den Schlüssel nehmen also für den Rezipient nehme ich die Schlüssel ID. Also ich hab ihr jetzt die User ID. Das ist natürlich nicht unsere unser U ID im Linux Betriebssystem. Aber ich hab die User ID aber dann nehme ich die Schlüssel ID jetzt kann man sagen, aber wenn der Schlüssel einzeln rumliegt, dann Dann hat er ja nix das kann der kann. Das gpg kann die User ID nicht wissen. Das stimmt aber nicht. Weil wenn der Schlüssel sozusagen nicht importiert wurde, dann kann ich ja das überhaupt nicht verwenden also ein einziger Schlüssel, ohne dass er im gpg importiert es nutzt Nix, deswegen hab ich ihr automatisch die Schlüssel ID schon da. Der Schlüssel alleine hilft Nix zum verschlüsseln. Ich muss ihn importieren und dann hab ich die Schlüssel ID also ich probier's mal aus

# (C) David Vajda
# 2025-04-22
# Verschluesselungsuebung
hallo welt

david@work:~$ nano klartext20250422001.txt
david@work:~$ gpg --encrypt -a --recipient C3723FDC6BE63EFBDD11FC16DBF063341D43F2C8 klartext20250422001.txt
david@work:~$

-----BEGIN PGP MESSAGE-----

hIwDOAH/9lypcHwBBADLeKZB2DgGaS3I2lLy/t5EAboIDejiOf8ZtMcBecFO3zFQ
kQKiPjkYw22fpK2/DXtwSeYyuzORh1Kiq1E69fppE5FySf57aNjWxiUkZrSwMwrr
MPK/JKF3u9Kvsuwfo2oSWl6coIAL9DQcLotXcSTZGutuV6ypokPoKBLIlKzIvdKT
AUIupebrUYjlfAsy21hTGn5HEjrTyPgfuOZeukSoUGvlrU2NYsnG855aA91vC69C
IfY+jrgnOEM6eE+LgLW54G1UJ06/BBr9FQi+ixixDwkAg6/D7pvJoJBu34kGDm1c
NUKqXrt96uFK8N3j0Ec1/VCao6oldInnCggRhPA8NQySSZ1Cf45V/uxrWwZvvFTC
vtcz
=2zk/
-----END PGP MESSAGE-----

Jetzt entschlüsseln wird es natürlich mit Decrypt probieren. War es was passiert?

Das gleiche wie gerade eben aber ohne Schlüssel ID ohne Schlüssel ID

david@work:~$ gpg --decrypt -a klartext20250422001.txt.asc
gpg: verschl"usselt mit 1024-Bit RSA Schl"ussel, ID 3801FFF65CA9707C, erzeugt 2025-04-22
      "David Vajda <david@dvajda.de>"
# (C) David Vajda
# 2025-04-22
# Verschluesselungsuebung

hallo welt
david@work:~$

david@work:~$ gpg --decrypt -a klartext20250422001.txt.asc
gpg: verschl"usselt mit 1024-Bit RSA Schl"ussel, ID 3801FFF65CA9707C, erzeugt 2025-04-22
      "David Vajda <david@dvajda.de>"
# (C) David Vajda
# 2025-04-22
# Verschluesselungsuebung

hallo welt
david@work:~$ gpg --decrypt -a klartext20250422001.txt.asc > entschluesselt20250422001.txt
gpg: verschl"usselt mit 1024-Bit RSA Schl"ussel, ID 3801FFF65CA9707C, erzeugt 2025-04-22
      "David Vajda <david@dvajda.de>"
david@work:~$
\begin{verbatim}
# (C) David Vajda
# 2025-04-22
# Verschluesselungsuebung

hallo welt

Nicht viel zu tun außer mit der Verschlüsselung und unseren Schlüsseln und unseren die Zertifikate. Die kommen nur bei Open SSL. Aber jetzt müssen wir aufpassen, weil die Schlüssel die Schlüssel tauchen genauso bei SSH auf und es hat jetzt nicht 100 prozent was damit zu tun wenn der die Schlüssel für SSH generieren, geht es generell mal anders Geht es generell mit dem anderen Programm selbst auf die gleiche Art und Weise geht es geht mit dem anderen Programm das gleiche mit OpenSSL auch machen einen Unterschied

Bei den also mit den Zertifikaten des des, hängt jetzt nicht damit zusammen. Sie haben also generell haben Sie sozusagen den Schlüssel damit verschlüsseln Sie mit dem öffentlichen verschlüsselt ihr Browser verschlüsselt mit dem öffentlichen Schlüssel. Die Daten, die er abgesendet hat, nicht. Die Homepage wird verschlüsselt, nicht was sie abrufen wird verschlüsselt, sondern was sie übertragen wird verschlüsselt mit dem öffentlichen Schlüssel auf dem Server das ist der Punkt Nummer eins die Zertifikate sind Nur dazu da, dass sie ausgeben können, dass dieser Schlüssel Ihnen gehört also dem Server, dass der Server mit dem mit dem Schlüssel übereinstimmt dafür haben sie die Zertifikate und sie haben drittens die Zertifizierungsstelle. Die gibt an, dass die zertifiziert die gibt sozusagen Zertifikate für die Zertifikate raus, dass sie von der richtigen Institution zertifiziert sind. Das ist jetzt nicht Teil der Sache, sondern wir wenden uns jetzt im SSH auch hier die selben Schlüssel wie bei unserem

OpenSSL

Das sind vom Format die gleichen Schlüssel die selben Verschlüsselung Algorithmen allerdings andere Programme werden am selben Ort untergebracht andere Programme. Dies ist der Teil Nummer eins und dann kommt der Teil Nummer drei. Was ist

OpenSSL

Es gibt ein Problem dabei, weil Sie müssen wissen, ich benutze das Programm. Soweit ich jetzt weiß, benutzen Sie genauso um die Schlüssel zu erzeugen aber sie benutzen das auch um die wie genau wie auch sie halt gpg benutzen um die Schlüssel zu erzeugen müssen sie ja dieses Programm benutzen, um die Schlüssel zu erzeugen, um die Schlüssel sozusagen herauszugeben und um die Nachrichten zu verschlüsseln benutzen Sie ein und das selbe Programm verstehen Sie also ich erzeuge die Schlüssel und die Schlüsselpaare aber ich verschlüsselte auch die Nachrichten damit deswegen das ergibt auch einen Sinn, dass warum SSH und open SSL wiederum eigene Programme sind die dieselbe Verfahren benutzen alles gleich aber das selber machen weil jedes Programm verschlüsselt selber und macht eigenständige Schlüsselpaare und so weiter. Ich würde sagen wir benutzen jetzt erst mal Open SSH mit den Schlüsselnerst eine rauchen gehen

Auf der Seite von Ubuntu User steht, was sie brauchen, um Schlüssel zu generieren. Einen Moment, ich zeige sie Ihnen gleich. https://wiki.ubuntuusers.de/SSH/ ...

ssh-keygen

Wie heißt das Programm? Es ist hier heißt das Programm ssh-keygen Müssen wir uns genauer anschauen, weil ich sehe hier nur eines, was hier auf der Seite steht. Sie können hier nur den den Public Key exportieren. Wir müssen gucken können wir hiermit einen Schlüssel generieren wahrscheinlich schon sonst wird es Programm so nicht heißen müsste genauso funktionieren wird das andere gucken wir uns genauer an deswegen rufen wir jetzt die Hilfe von dem Programm auf. Mal gucken was kommt

[-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa]
andere algorithmen, scheinbar teilweise.

\includegraphics[width=\textwidth]{Screenshot_220250422_134855.png} \includegraphics[width=\textwidth]{Screenshot_220250422_140114.png} \includegraphics[width=\textwidth]{Screenshot_220250422_140119.png} \includegraphics[width=\textwidth]{Screenshot_220250422_140441.png} \includegraphics[width=\textwidth]{Screenshot_220250422_140540.png} \includegraphics[width=\textwidth]{Screenshot_220250422_141214.png} \includegraphics[width=\textwidth]{Screenshot_220250422_141315.png} \includegraphics[width=\textwidth]{Screenshot_220250422_141405.png}

Also ich glaub wir gucken einfach im Netz nach und auch hier haben wir irgendwie Zertifikate und wir müssen den Schlüssel mit dem Zertifikat signieren. Kann ich nicht 100 prozent sagen. Ich weiß nur dass man eigentlich also wie gesagt wenn sie die Website haben dann haben sie halt die Zertifikate damit signieren Sie den Schlüssel, weil Also gut sie haben wie gesagt es sind alles Verschlüsselung Programme für SSL ist ein Verschlüsselung Programm gpg ist ein Verschlüsselung Programm. Der Unterschied besteht darin. Mit dem einen verschlüsseln Sie sozusagen ihre E-Mails. Das macht aber nicht das E-Mail-Programm selber sie nehmen beliebigen Klartext verschlüsseln, den, wenn sie den verschlüsselt haben, können Sie den genauso abschicken und vorausgesetzt, der andere benutzt seine eigene. Wie soll ich sagen Verschlüsselung Software, die sie einfach benutzen würden, um irgendwelche Texte zu verschlüsseln dann können Sie damit Texte entschlüsseln und verschlüsseln, selbst wenn sie die Schlüssel austeilen oder verteilen. Nur der Unterschied besteht darin hier machen Sie das selber und schicken den verschlüsselten Text die kopieren den einfach in die E-Mail rein wenn sie jetzt sozusagen httpsbenutzen dann müssten Sie also nicht die Website wird verschlüsselt ihre sozusagen zurück gesendeten Daten also Passwörter IBAN und so weiter. Die werden alle einzeln verschlüsselt übertragen an den Server. Die Homepage müssen Sie nicht verschlüsseln, weil auf die kann jeder zugreifen. Das macht gar keinen Sinn das andere Problem ist aber wenn sie jetzt technisch gesehen, sagen wir mal ganz grob bei jedem Zugriff auf die Homepage wenn sie ihre Daten senden also Sie senden die HTTPS Response. Also sie senden also sozusagen dies zurück und sie müssten jetzt alle ihre Daten also mal angenommen Sie können ihre Response selber absetzen. Mal ab mal angenommen ihn gelingt es dann müssen Sie jetzt die Daten vom Server empfangen, was in der Homepage drin steht und sie müssen jetzt jedes einzelne Datum sozusagen durch ihr gpg Programm durchsagen und selber an den Server senden. Also sie müssten sozusagen vor jedem absenden an den Server durch ihren Browser die Daten einmal verschlüsseln. Das macht natürlich keinen Sinn und deswegen haben sie ein eigenes Verschlüsselung. Sroka in httpsim Gegensatz sozusagen zu ihrem normalen Verschlüsselung, Droid, das muss man halt verstehen. Also es gibt verschiedene Verschlüsselung Programme. Die basieren eigentlich alle auf dem selben sehen ähnlich aus. Nur der Unterschied ist die sind alles unterschiedliche Programme und die benutzen keine gemeinsame Bibliothek. Ich vergleich es immer mit Windows da haben sie ne DLL. Sowas kenne ich gar nicht das ist mir auch ganz egal. Ich hasse diesen Scheißdreck jedenfalls genau an. Sie haben eine einzige komplette Bibliothek und alle Programme reichen darauf zurück. Das muss nicht so funktionieren weil jedes Programm hat diese Verschlüsselung Algorithmen selber integriert und es sind alles unterschiedliche Programme von SSL bis SSH und so weiter und ihrem eigenen die benutzen alle das gleiche aber die bauen nicht auf dem selben Punkt. Also die benutzen nicht im Kern. Das selbe Programm das müssen Sie wissen die haben das alle einmal für sich integriert. Das ist der unterschied also wenn sie sie benutzen keine gemeinsame DLL sozusagen und das muss man verstehen, weil wenn sie wie gesagt ihre Daten, die sie an den Server absenden selber verschlüsseln müssen, müssen Sie die jedes Mal reinstecken deswegen sind es unterschiedliche Programme auch wenn die fast ähnlich funktionieren und fast ähnlich aussehen. Das ist der Punkt Nummer eins und der Punkt Nummer zwei was die Zertifikate betrifft, das geht nur da drum wenn sie auf ihrer Homepage Schlüssel haben womit also den öffentlichen den geben Sie an den Browser weiter der verschlüsselt, damit die Daten und der Server verschlüsselt sind, mit seinem eigenen privaten entschlüsselt sie damit gut. Jetzt müssen Sie wissen, jetzt reicht es beim Browser nicht. Also wenn Sie Ihre E-Mails verschlüsseln, dann ist es Ihr Problem nur man weiß halt nicht, ist die Homepage gefälscht und deswegen gibt es Zertifikate und damit müssen Sie den Schlüssel sign signieren, weil wenn sie den Schlüssel nicht signiert haben dann kann der Schlüssel irgendwo herkommen und deswegen signieren Sie die den mit dem Zertifikat und die Zertifikate können gefälscht sein. Deswegen müssen die Zertifikate wiederum signiert sein, nämlich durch die Zertifizierung stellen. Also signieren den Schlüssel bei SSL mit dem Zertifikat, aber das Zertifikat ist wiederum signiert genauso durch die Zertifizierung Estelle dieses Problem Nummer eins und ich sehe hier bei diesemSSH, wo sie die Schlüssel generieren sehe ich genauso ne Zertifikat sich ja auch und ich sehe hier genauso, dass sie hier signieren können also ich vermute sie können wahrscheinlich wenn ich das jetzt so sehe. Ich glaube man kann hier tatsächlich Schlüssel selber generieren aber ich glaube wir können hier unsere normalen Zertifikate benutzen um diese Schlüssel hier auch zu signieren. Gucken wir mal nach. Ich guck irgendwo im Internet nach einer Beschreibung für dieses Programm.

https://www.ssh.com/academy/ssh/keygen

...

ssh-keygen -t rsa -b 4096
ssh-keygen -t dsa
ssh-keygen -t ecdsa -b 521
ssh-keygen -t ed25519

  [-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa]

Das, was ich sagte, was da drunter steht das hab ich selber reingeschrieben das hab ich in der Hilfe nachgekuckt, so steht es in der Hilfe von dem Programm. Das ist das was ich sagte sie müssen hier den Verschlüsselung Algorithmus angeben aber wenn man auf Ubuntu User kuckt, dann sind es die Verschlüsselung Algorithmen nicht für die Was steht hier?

Für die öffentlichen Schlüssel sagen wir mal so öffentliche Schlüssel haben ein eigene Geschichte und wenn ich jetzt nach gucke tatsächlich wenn ich sagte, hier stehen Sachen die bisher noch nicht da standen dann weil ich die öffentlichen Schlüssel Algorithmen oder wie soll man die nennen die hab ich bisher noch nicht auswendig gelernt und tatsächlich die sind die selben. Also Vorsicht Verschlüsselung, Algorithmus

Es geht einerseits drum. Sie müssen ja sozusagen. Wahrscheinlich ist es die Schlüsselpaar erzeugen das hat einen eigenen Algorithmus nämlich mal an und sie müssen den Verschlüsselung Algorithmus selber durchlaufen lassen. Also sie haben Algorithmus zur Erzeugung des Schlüssels. Da steht hier zwar öffentlicher Schlüssel oder was steht hier ja öffentlicher Schlüssel. Ich vermute, dass es einfach heißt Erzeugende Schlüssel. Pass also zwei Algorithmen erzeugende Schlüsselpaar und der zweite die zweite Algorithmentypen richten sich darauf wie sie verschlüsseln so und ich hab ihn vorher gesagt ich sehe hier neue Wörter als ich das erwähnt hab stimmt so nicht die stehen hier auch. Das bezieht sich auf den öffentlichen Schlüssel. Also die Schlüssel paar gut dann wissen wir das

Noch ein unterschied sie brauchen. Bei SSH brauchen wir ein Passwort. Wir gucken nach, ob wir ein Passwort brauchen. Der Unterschied ist zum Beispiel also ich würde sagen bei Openssl brauchen wir kein Passwort wenn wir unsere Nachrichten verschlüsseln. Per E-Mail brauchen wir natürlich ein Passwort, weil der sagen wir der Empfänger also der jenige der die Schlüssel veröffentlicht, der die öffentlichen Schlüssel weitergibt der braucht ein Passwort um seine Nachricht zu entschlüsseln. Bei Openssl brauchen Sie garantiert kein eigenes Passwort, weil ehrlich gesagt ich muss ja nicht mit dem Server muss ich ja nicht jedes Mal mein Passwort eingeben, wenn irgendein Client irgend ne Anfrage an mich sendet. Das ist eine Quatsch. Also gucken wir mal, ob wir ein Passwort brauchen vielleicht weil wir müssen bei SSH ja jedes Mal ein Passwort reinguckeneingeben gucken wir nach

\includegraphics[width=\textwidth]{Screenshot_220250422_114225.png} \includegraphics[width=\textwidth]{Screenshot_220250422_134848.png}

david@work:~$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/david/.ssh/id_rsa):

Hierbei ssh brauchen wir hier. Bei SSH brauchen wir. Ein Passwort und es ist logisch, wenn ich benutze, SSH ja um mich auf den Server von mir einzuklinken oder auf irgendwelchen anderen Rechnern von mir. Dann ist es logisch, dass ich ein Passwort brauche, weil ich muss ja jedes Mal, wenn ich mich auf den anderen Rechner reingehen, muss ich ein Passwort eingeben. Trotz allem, das ergibt irgendein Sinn.

\includegraphics[width=\textwidth]{Screenshot_220250422_113905.png} \includegraphics[width=\textwidth]{Screenshot_220250422_114225.png} Also wenn wir sozusagen ich geh nachher unter die Dusche und bring mich nachher in Ordnung. Jetzt hab ich ihr halt grad zum kleinen Witz was das Bitpanda betrifft. Ich muss jetzt erst mal die Aufgaben normal weitermachen. Ich fang jetzt sozusagen an schon mal mit der Entwicklung des Programms was also sozusagen hier an der Bitcoin Börse, fang ich mal mit die notwendigsten anmeine mein Geld verdient. Fangen wir mal mit den notwendigsten an erst mal zur Tagesstruktur

Ja echt gern zu den Huren will so sehr ich gern zu den Huren will weiter jetzt noch besser steht wie vorher und mal jetzt richtig Spaß macht hole ich mir einfach einen runter dann bin ich die Sorge schon mal los. Tut mir leid, dass es hier bei der Softwareentwicklung mit drin ist, ist es mir auch egal. Bei mir gehört dazu so jetzt Punkt Nummer eins . Also jetzt steht aber besser wie sonst aber gut egal also gut jetzt ist es Punkt Nummer eins dann der Punkt Nummer zwei.

Von einer Tagesstruktur, denke ich, können Sie mir auch ein Zeitfenster einräumen, wie viel Übung ich mache und wie viel ich auswendig lernen und dann rechne ich mal mit 3 Stunden also ich fang 10:00 Uhr mit dem normalen Programm an und dann fange ich an. Um 10:00 Uhr gehe ich erst mal unter die Dusche und mach mich erst mal normal und bis dahin herrscht hier sozusagen Anarchie. Das bedeutet bis dahin interessiert mich jetzt erst mal nicht 10:00 Uhr Dusche und so weiter und dann bin ich schon mal in Ordnung und bis dahin ist der Tag erst im entstehen begriffen und jetzt zu unserem Programm.

Also was wir wollen wir wollen sozusagen bitpanda ist jetzt meine Plattform und jetzt fehlt uns da gleich mal was das brauchen wir dringend jetzt auch zu unserer Plattform das erste was wir halt jetzt auffällt

Das Programm gliedert sich aus zwei Teilen der erste Teil ist sozusagen. Wir brauchen halt den Zugriff auf unseren auf uns auf die Homepage selber weil wir müssen ja ein bot schreiben. Sozusagen kann man so zu sagen des erfreut sich nicht. Bei allen mit Belieben, sie kennt es im Internet. Wenn sie anklicken müssen Re chapter oder so irgend sowas. Dann sind die Leute nicht so begeistert, dass da irgendwelche sagen, wir Spy, Boots oder was weiß ich war von irgendwelchen Hackern. In dem Fall ist es ja nicht so gemein und es ist mein eigener Account. Sich auf der Homepage einloggen ist generell auch nicht so schwierig. Man muss ein bisschen üben das ist sowieso auf der Schritt, was ich jetzt meine zu dieser Software Entwicklung folgendes

Es geht ja als schlicht und ergreifend um Geld und entweder die Dollar sind am Ende da oder sie sind halt nicht da und da können Sie herkommen. Mit Universitäten Abschluss oder nicht sind 40 Milliarden € haben dann gehen die Leute von allein weg so also Punkt Nummer eins und Punkt Nummer zwei ist folgender also jetzt, es gibt zwei Teile

Der eine Teil ist halt sozusagen unser klassischer Zugriff auf die Homepage selber. Wir haben jetzt hier bitpanda und das hat halt ein Web Interface und das Problem begegnet uns immer wieder und glauben Sie nicht bei meinen Übungen ist es Standard eigentlich? Das ist sozusagen auf einer Homepage. Die müssen ja auf ne Homepage nicht unbedingt durch den Browser zugreifen, sondern sie wissen ja also hier wird einfach irgendwas übertragen, sagen wir mal kurz und knapp und jetzt müssen Sie sozusagen ihre Buttons und so weiter die müssen Sie jetzt durch ihr sagen wir mal schlicht und ergreifend linux bash . Skript eigenständig auslösen, weil dahinter steckt irgendwo halt ihre Software und die musste selber machen so, da wird auch keine schöne Grafik sein sag ich gleich folgendes

Also das hab ich eigentlich schon öfter gemacht. Sie haben also das ist Teil meines Themas und das ist bei mir gut trainiert da muss ich gar nicht mehr so viel tun am Ende also wie gesagt zwei Teile das eine ist der Web Zugriff Teil Nummer eins

Teil Nummer eins der Web Zugriff Teil Nummer zwei ist halt die Software die herausfinden soll da sag ich gleich was der Hintergrund ist. Das müssen wir ja möglichst genau definieren. Aus mathematischer Sicht ja damit sie versteht müssen wir jetzt verstehen wie diese Software worauf die Grundlage besteht, dass sie bis überhaupt kann. also wir müssen erklären, warum sie das können soll. Das ist vielleicht gar nicht so eindeutig das muss man wissen und Punkt Nummer zwei ist hier ist halt die Software die versteht wie diese Kurse funktionieren sagen wir mal kurz und gut

Zunächst der Software, die auf unsere Website zugreifen. Dies ist natürlich sowieso ein Ding das können wir überall gebrauchen. Mir geht es manchmal teilweise auf den Keks wenn ich den Browser aufmachen muss ehrlich gesagt ich hab da gar keine Lust so Sie wissen ich schreibe gerne BA SH Skript und mir geht es auf den Keks wenn ich jedes Mal die die Homepage aufmachen muss das ist bei mir bei allen möglichen sobald der Commerzbank und es ist bei mir beim sagen wir bei allem Beim Google. Bei allen geht mir das einfach nur noch auf den Sack wenn ich jedes Mal den Browser aufmachen muss, das ist da fühle ich mich insgesamt von mir selbst entmündigt muss ich sagen und es geht einfach anders.

Zunächst das Problem habe ich schon längst begriffen. Also sie müssen halt ihre HTTPrequest absetzen. Es gibt halt request, und es gibt Response, und sie kriegen die Response. Kriegen Sie genauso mit ihrem request. Sie haben nur ein einziges Problem. Sie müssen aufpassen.

Jetzt zunächst, warum müssen wir das machen? Noch ein dritter Punkt ja gut, also mit der K.I. des Musk das dauert vielleicht wenig lang, oder ich weiß es nicht. Ich sag für die Programme Entwicklung Grenze zwei Jahre.

Ich sagte, wir können die Grenze hinterher in zwei Jahren verschieben, aber ich rechne mal mit einer Entwicklungszeit von zwei Jahren also so schnell wird's nicht gehen. Wir setzen jetzt ein Zeitfenster zwei Jahre erst mal kurz und gut was sind die Voraussetzungen?

Muss Fernuni Hagen jetzt den Kurs Algorithmus Mathematik bestanden haben und muss ich K bestanden haben. Ich steh strebt natürlich drauf hin muss ich sagen das ist ein zweites Ziel sozusagen oder das Hauptziel aber das ist ein anderes Thema. Natürlich mache ich das aber ehrlich gesagt arbeite ich jetzt auf den Kurs drauf hin aber es ist nicht Grundvoraussetzung als ich kann wenn die Software funktioniert und ich sagen mal 100 Milliarden € verdiene dann ist es relativ irrelevant und ich kann den Kurs auch so verstehen so also ich kann den auch so anwenden also das müssen wir jetzt nicht von der lehrtechnischen Seite her sehen ich will's verstehen und ich hab jetzt zum Beispiel in dieser Hinsicht zwei Kurse Oder was sind unsere Quellen ich hab mehrere Quellen

Generell, das ist jetzt nicht für die Sache 100-prozentig über notwendig. Das müssen wir jetzt unterscheiden. Also wir haben generelles Verständnis für KI und ja gut das ist Teil jetzt sozusagen des zweiten Teils der Software unser unser Programm was im Hintergrund abläuft, erklär ich gleich nur die dritte Frage eben mit dem Zeitfenster. Ich sage zwei Jahre zwei Jahre gucken wir mal was dabei rauskommt. Wenn wir dann sehen wo wir sind. Wir können wir immer noch gucken jetzt der erste Teil des Programm

Das verfolgt uns jeden Tag aufs Neue ist nicht so kompliziert wie mein. Wir müssen überhaupt lernen auf ne Homepage zu zugreifen ohne unseren Browser aufzumachen. Ich selber hab damit viel zu tun und es gibt eine generelle Schwierigkeit. Sie müssen zwischen HTTPS und HTTPunterscheiden. Also HTTP Sport 80, HTTPS Port 443, das müssen wir hier unterscheiden und zwar dringend, weil jetzt haben wir hier ein kleines Problem. Das ist auch nicht so gravierend. Wie gesagt das erste falls sie mitmachen wollen ist das erste was sie lernen müssen. Sie müssen mit gpg umgehen und bitte nicht mit irgendein Programm im Internet für Windows, sondern wechseln Sie zu Linux. Das erste, was sie brauchen, ist ein Programm, mit dem sie normal ihre Sachen verschlüsseln und zwar per Hand das müssen Sie lernen, weil sie müssen auch den Verschlüsselung Saal Rhythmus vielleicht selber nicht umsetzen. Sie sollten mir vielleicht kein Camelia was weiß ich war und was ist alles gibt und Thunfisch und Blowfish und Whatever sollten Sie vielleicht wissen nicht zwei Fisch, gut egal ne noch nicht, die sollten Sie wissen das müssen Sie generell machen, weil das brauchen Sie jetzt es gibt. Verschlüsselung gibt es an verschiedenen Stellen gibt es bei SSH, wenn sie auf ihren anderen Rechner zugreifen und so weiter brauchen Sie immer wieder das selbe Prinzip sie müssen ihre Schlüssel, haben und und so weiter das brauchen Sie jetzt auch

Gut, dann ist der erste Teil also wenn sie ihn in HTTPrequest absetzen. Das kennt sie von meinen Übungen. Ich weiß nicht, ob sie den folgen dann ist der erste Teil. Sie müssen HTTPrequest absetzen. Das können Sie durchaus mit dem Button machen wenn sie ein Button haben, dann können Sie sich vorstellen also mit dem Eingabe Text der Eingabe Text hat zum Beispiel Name und dann machen Sie Post dazu. Also sie haben ne Post Eingabe variable. Sie müssen halt die Daten vom Browser oder von Client zum Server übertragen. Sie müssen sie jetzt als Text übertragen und ja gut, jetzt müssen Sie halt die Homepage müssen Sie halt reinnehmen sozusagen. Sie müssen die abfragen und müssen jetzt erkennen. Wie heißt der Button und wie heißt die Eingabebox das ist der erste Teil und jetzt die Frage. warum machen wir das ? Wir haben ja die ai noch nicht im Griff aus meiner Sicht jetzt

Das ist ganz einfach, wenn wir das Programm für den Web Interface haben dann sind wir schon mal weit gekommen verstehen Sie, als würden wir das jetzt haben dann haben wir uns den ersten Teil schon mal erspart. Ich sag mal so Sie haben 1 Million Daten zu lernen und sie sagen sie brauchen die 100 Daten hier und wenn sie die nicht verstanden haben, kommen sie nicht weit und die restlichen was weiß ich wie viel 900.000 sind ganz einfach dann sag ich ja gut aber wenn sie dann in zwei Jahren vom Lehrer stehen und sie haben die 100 Daten jetzt im Griff aber sie haben die restlichen 900.000 so und so viel nicht gelernt dann sag ich ja gut aber hätten Sie die gelernt dann hätten sie die jetzt schon gehabt also das wichtigste ist erst mal den Web Zugriff Deswegen machen wir das jetzt mit oder ohne Kenntnis über die KI das brauchen wir sowieso. Wie gesagt, wir müssen das ständig benutzen.

Also der erste Fehler besteht jetzt da drin oder das erste Problem ist sie ja mal ihren request unwahrscheinlichen Post als benutzt wahrscheinlich Postvariablen und wenn sie jetzt den request absetzen das ist ne relativ einfache Sache. Sowas übe ich jeden Tag mit Telnet dann machen Sie das und jetzt kriegen Sie die Homepage zurückgeliefert und da steht ein Button drin aber den Button den gibt es so nicht. Der erscheint nur im Browser und da steht jetzt ne variable dahinter. Und jetzt müssen Sie in die variable Datum senden. Also in Form von Text das ist Punkt Nummer eins.

Jetzt haben wir das zweite Problem. Jetzt ist es aber httpsweil mit HTTP werden sie nirgendwo weiterkommen. Nicht mal bei mir. Jetzt müssen wir die Sache. Da gibt's ein Programm d.h. genauso unter Linux sind die Verschlüsselung muss ich genau nachgucken wie die Verschlüsselung sozusagen für die Files HTTPS also sie müssen sich vorstellen das sind nicht die gleichen Programme. Sie haben SSH sie haben HTTPsie haben alles mögliche die benutzen alle verschlüsselt. Also sie benutzen alle halten Verschlüsselung die funktioniert auf die selbe Art und Weise. Die haben alle in Private key und Public Key so weiter haben bei Linux haben Sie einen Ordner bei Linux haben Sie einen Ordner der ist in ihrem Home Verzeichnis. Da stehen die Schlüssel drin. Das verrückte ist, dass sie nicht und das hab ich ne Weile gedacht, als ich das noch nicht so gut wusste, Sie haben für SSH nicht den selben Schlüssel Verschlüsselung Programm, die HTTPS das ist zwar genau das selbe also auch das Verschlüsselung. Die Verschlüsselung Algorithmen sind die selben aber sie benutzen nicht die selbe Verschlüsselung also wenn sie für SSH Schlüssel erzeugen müssen es ist nicht der gleiche wie für HTTPS, wenn's letztenendes auch genau das gleiche hat das gleiche Format und so weiter aber es funktioniert in dem Fall nicht sie könnte es mit Bildern vergleichen. Sie haben immer das gleiche JPEG die haben immer das gleiche Format aber andere Programme in dem Fall benutzen Sie das anders das ist Nummer eins und dann müssen wir jetzt arbeiten, wenn wir diesen HTTPrequest absetzen. Das ist das die eine Schwierigkeit bei der Sache dann müssen wir eben dieses dieses verschlüsselte Übertragung erlauben und es genügt nicht, indem wir das machen, indem wir sozusagen unser Telnet öffnen können wir, jetzt könnten wir ja mein wir können die gesamte Sache, die wir hin und zurück übertragen können. Wir selber verschlüsseln ich glaub mit extremen Anstrengung wird ihm das am Ende gelingen aber ich glaub das müssen Sie einfach nicht wie gesagt, ich weiß nicht genau gerade, wie das Programm für HTTP heißt es müssen wir uns halt rein arbeiten. Sie müssen es gibt das selbe Programm was des HTTPS Schlüssel erzeugt. Wenn Sie den in ihren Server einbinden gibt, können Sie mit dem selben Programm den request absetzen das weiß ich so und das ist der Punkt Nummer eins, was wir machen müssen.

Und das schwierige dabei ist ich hab dich schon gemacht und wissen Sie, was das absurde ist wissen Sie was das beknackte an der Sache ist und es hat mich ernsthaft gestört und daran muss ich arbeiten. Wissen Sie, was das verrückte ist ich hab diesen HTTPrequest also HTTPS request mit diesem Programm abgesetzt hat alles schön funktioniert. Sie haben nur eine Schwierigkeit, wenn sie das machen. Das Programm lässt leider keine Daten zu diese von außen rein tun. Also sie kennt es Weiterleitung von Daten. Sie haben das Programm Nummer eins und das Programm Nummer zwei halt in der Konsole und sie leiten die Daten einfach weiter und ich hab das versucht und Verstehen Sie das Programm ist an sich nutzlos. Also jetzt bitte verschwinden Sie wenn sie im Windows Nutzer sind, dann setzen Sie sich bitte im Zug nicht im Flugzeug in in einer andere Stadt und komm nicht mehr wieder. Also sie haben unter Linux ne klare Umleitung von Programm und sie müssen halt die Daten in des in diesem verschlüsselten HTTPS request rein kriegen. das ist Problem Nummer eins Und da hat Riesen Schwierigkeiten das hat bei mir nicht funktioniert aber daran können wir arbeiten und das Problem Nummer zwei bei unserem Programm

Das sollte machbar sein. Sie haben halt jetzt ne klassische Homepage wie meine und die sagen wir relativ einfach entwickelt. Was wird dann passieren, wenn wir einen Button haben Sie dürfen uns am Baden nichts falsches verstehen. Sie haben hier ihren Browser der besteht letztenendes aus drei Teilen.

Sie haben sozusagen grafisches Front and, das sieht es so aus, als ob das ein Button ist. Es gehört einfach zu ihrer sagen wir Fenster Programmierung. Ja die die die gesamte Software benutzen benutzen alle heutzutage für ihre KD und Fenster.Programmierung benutzen die keine die soll man sagen eigenen Routine, sondern es gibt halt Libraries wie QT vier die benutzen halt einfach und da gibt's alles Fenster Buttons. Alles gibt's da wenn sie jetzt natürlich im Browser gucken erscheint in der Homepage im Button und es ist halt das interessante an so Sachen wie QT4. Sie können baden erzeugen d.h. selbst wenn die Homepage nicht Teil ihrer Software selber ist wie sie meint, dann kann die trotzdem Button erzeugen, wenn sie durch die Homepage geht so d.h. das ist der grafische Teil an der Homepage der genauso QT4 benutzt an ihrem Browser jetzt kommt der andere Teil der ist sozusagen der Übersetzer weil sie müssen verstehen, die Homepage benutzt. Java Skript, die benutzt sozusagen HTML und da haben sie ne Sprache und diese Sprache mit einem Übersetzer egal wie sie kennt ja Übersetzer und Interpret, das ist letztenendes irgendwo auch das gleiche das ist man auch nicht . Sag ich mal so aus einer gewissen Hinsicht müssen Sie halt jetzt diesen ganzen Quelltext analysieren und es ist der zweite Teil aber es gibt noch einen dritten Teil. Den darf man nicht vernachlässigen, wenn sie den Button sehen. Es gibt kein Button, das macht der Browser so in Wirklichkeit gibt's was anderes.

Sie haben halt lauter variablen und die heißen halt Postware. Also es sind Post und global oder sie haben sozusagen. Sei halt die Post variabel und so benutze ich die immer das ist der normale Weg und jetzt müssen Sie halt die variable abfragen. Die hatten Namen weil wenn sie ne Eingabe Beatbox hat. Die Eingabebox hat Namen und entsprechend wird es bei Ihnen gespeichert und auf dem Server und jetzt müssen Sie sozusagen. Wenn sie die Eingabebox entdeckt haben, müssen Sie über den request Daten als variable dahin übertragen. Also es gibt da keine Eingabebox werden nicht übertragen. Sie sehen nur die über den request erfahren Sie wie sieht die Homepage aus da, sehen Sie die Eingabemaske, sagen wir mal einen Text und jetzt sind sie den Namen und jetzt müssen Sie in der variablen als Für ihre Antwort. Also, das ist auf den Server ist es ein request müssen Sie jetzt sozusagen die Daten über die Eingabebox senden dieses Problem Nummer eins das ist letztenendes nicht schwierig das mache ich immer wieder. Das ist gut wenn man das geübt hat. Jetzt kommt ne zweite Schwierigkeiten. In der einfachen Homepage heißt der Name von der Eingabebox das versuche ich inzwischen zu vermeiden. Das ist ein allgemeines Problem. Machen Sie mal ne Einzahlung an ihrem Bankautomaten dann werden sie entweder bei einer Bank sein die lässt keine Namen für den Verwendungszweck zu Klügere Bank lässt Namen für den Verwendungszweck zu bei der Einzahlung und jetzt der Klügere Nutzer. Der schreibt sozusagen einfach ne Nummer rein. So wie das jeder Verkäufer macht, schreibt ihm jede Transaction. In jedem Handel schreibt er Nummer so und so viel und vermerkt sich irgendwo anders was das für ein Kauf und Verkauf war. Jemand, der nicht so gut ist der schreibt den Verwendungszweck selber rein. Also der schreibt rein was er da gemacht hat, ist eigentlich falsch. Die müssen jeden jeden Transaktion durch nummerieren bei sich und zu Hause vermerken. Wie heißt die Transaktion das ist jetzt genauso mit ihren Buds und Eingabemasken. Sie können hinschreiben in die Eingabemaske heißt Herr Sohn so Name Sohn und so und so weiter das ist der falsche Weg. Sie müssen die alte durch nummerieren, und es wird ihn auf jeder Homepage begegnen, wenn sie zum Beispiel zu Facebook übergehen müssen. Sie wissen von der Software Haben Sie die Software, die bietet Facebook an. Da ist Button gleich Button also nicht. Jeder Nutzer hat einen eigenen Button auf der einen Seite, ja aber auf der anderen Seite. Jeder Button hat halt sehr lange Zahlen und es ist jetzt der zweite Teil von der Sache. Wir müssen jetzt erkennen wie auf bitpanda wie genau heißt sozusagen der Button und wie heißt die Eingabebox, wo wir die Daten reinstecken also wir erkennen ja die Eingabebox. Hier muss ich sozusagen mein Geld reinstecken so und so viel und jetzt muss ich hier erkennen. Wie heißt die Eingabemaske und muss sozusagen mit mit meinem Programm, die selber sozusagen eingeben und da muss man sehr lange dran üben, weil ich sag mal so jede Homepage hat er ihre eigenen Schikanen dann müssen wir ein bisschen gucken und wir müssen die Möglichkeit entwickeln wenn wir wissen das ist der Button die Software. Unser eigenes Ding muss es selber erkennen und dann gibt's noch einen dritten Punkt.

 Ich muss mich natürlich einloggen können das sollte keine Schwierigkeit sein, weil ich kann in meinen Browser gucken Sie mal ich kann nichts machen was man braucht. Ich kann alles machen was mein Browser auch kann. Also mein Browser kommt ja in die Homepage auch rein. Also geh ich davon aus. Ich selber komme in die Homepage auch mit meiner eigenen Software rein. Also jetzt müssen wir aufpassen. Wenn ich mein Benutzername eingebe müssen wir trotzdem bisschen aufpassen. Die Software heutzutage. Die Homepage sind sehr wählerisch wenn es um Kunden geht d.h. die gucken ganz genau. Greifen Sie mit dem Firefox zu greifen Sie mit diesem Programm und diesem Programm zu da müssen wir ein bisschen aufpassen, weil es gibt einfach Homepages. Die schmeißen jeden raus wenn die sie können sich 100 mal per SSL einloggen wenn sie nicht der richtige sind der richtigen Browser verwenden die sagen Sie sie werden wieder rausgeschmissen. Sie werden abgelehnt und dann müssen wir ein bisschen dran arbeiten. Zur Not nehmen wir einfach sagen wir mal genau die Daten die Firefox an die soft an die Homepage überträgt die nehmen wir jetzt und das interessiert uns nicht weil wir haben Benutzernamen und wir haben Passwort und das müssen wir jetzt übertragen. Das ist der dritte Punkt damit haben wir. Wenn wir damit fertig sind, haben wir das Web Interface geschaffen und jetzt zum Rest der Homepage.

Wenn jetzt von ausgehen keine Sorge, ich mach gleich weiter. Wenn wir jetzt von der KI ausgehen, dann müssen wir jetzt folgendes berücksichtigen. Also manche Leute würden wahrscheinlich denken, die Kurse sind global abhängig von dem, was die Leute kaufen. Also wenn ich wissen will, welcher welche Aktie geht als Nächstes nach oben dann also wir müssen das schon genau definieren. Also wenn wir glauben, die nächste Aktie geht nach oben dann hängt es davon ab wie viele Leute kaufen wie viel Bilder und wie viel Schrauben und was weiß ich was alles das ist leider falsch. Es gibt halt in der Mathematik das Gesetz der großen Zahlen. Also wir müssen jetzt drei Bereiche unterscheiden. Wir haben die klassische Wahrscheinlichkeitsrechnung

Als wären Wahrscheinlichkeitsrechnung, das ist das erste da werden jetzt manche Sachen darauf kommt es nicht an. Ich sag doch

Dann kommt der zweite Teil des Statistik

Dann kommt der dritte Teil. Des ist künstliche Intelligenz und da haben sie halt ihre Cluster Analyse und ich glaub das werden wir jetzt brauchen. Wir müssen unsere Software genauso trainieren. Sie kennt Chat GPT kennen Sie wahrscheinlich und das haben sie trainiert wenn es da drum geht 1000 Nutzer geben. Irgendwas ein irgendwelche Sprichwörter und was weiß ich was alles geben irgendwas ein und dann müssen Sie ein halbes Jahr lang trainieren damit die Software weiß wie es geht. Egal was was passiert aber sie müssen sie trainieren. Das müssen wir jetzt nachher auch machen.

Müssen wir dafür besonders klug sein ich denke nein also erstens meinte ich hab einen Kurs Kiki besucht. Wir müssen nicht sehr klug sein das ist die Punkt Nummer eins ist die Software die Kiki macht klug. Ich sag im Allgemeinen nein Software die ki macht ist nicht sehr klug dahinter stecken ganz einfacher Algorithmus, der heißt ich weiß gerade nicht hab ich schon benutzt. Den müssen wir jetzt anwenden. Der geht in Richtung Pflasteranalyse. Ich vermute das müssen wir hier benutzen um sehr viele kleine Cluster zu erstellen, die sich miteinander vergleichen lassen sozusagen. Also folgendes

Wir müssen Wahrscheinlichkeitsrechnung aus einem Grund verstanden haben, weil es gibt es Gesetz der großen Zahlen d.h. wenn 100 LKW und Sohn so viele Autos an ihnen vorbeifährt ansagen, Sie können ja nicht Voraussagen. Im nächsten Moment kommen viel mehr LKW das sind ja Menschen und keine Zufallsexperimente in der Realität ist es nicht so. Nach einem Jahr werden sie feststellen es ist mit einer sehr genau also ist es. Sie können die Wahrscheinlichkeit also die Sozusagen die relative Häufigkeit vorhersagen das ist so so viel ist ein LKW und so und so viel ist ein Auto selbst wenn es Menschen sind. Das selbe betrifft jetzt hier unsere Börse. Wir können ohne den gesamten Markt zu kennen. Können wir ab einem gewissen Punkt wenn wir unsere K.I. trainiert haben, können wir sagen, es geht nicht drum wie viele Leute, wo was einkaufen? Die müssen wir gar nicht wissen. Die Leute wir müssen nur die Währung selber im Griff haben. D.h. die Wahrscheinlichkeitsrechnung ist leider nur der kleinste Bestandteil. Sie können sich hier sozusagen ne Erbse in einem riesengroßen sagen wir in einem riesengroßen etwas in einem riesengroßen Körper vorstellen, der ein Riesenvolumen hat die Erbse liegt, steckt nur in der Mitte und ist nur der kleinste innere Teil. Aber darum geht's, weil die gesamte die gesamte Statistik und die gesamte sozusagen Die gesamte Klasse Analyse also die gesamte ki baut, auf diesen inneren Bestandteil aus. Sie können davon ausgehen, selbst wenn es Nutzer sind, selbst wenn es Menschen sind. Und selbst wenn ihre ki mal aus Versehen alles Geld verschleudert, es wird ihn immer passieren können ist es trotzdem so irgendwann verhält sich die stabil in irgendeiner Hinsicht nur der Unterschied zwischen normalen Wahrscheinlichkeitsrechnung. Hier können wir ne Aussage erlauben, die uns selber noch zulässt zu entscheiden. Mit dieser Wahrscheinlichkeit ist es in LKW und mit dieser Wahrscheinlichkeit ist im Auto das können wir in diesem Fall überhaupt nicht. Das können wir nicht sehen und die ki Software die ist in dem Fall nicht auf das angepasst, was wir hier machen. die hat davon keine Ahnung. Also für die macht es keinen Unterschied ob sie jetzt irgendwas an Sprache eingeben oder ob wir es hiermit, ob wir es hiermit sagen wir Kryptowährung zu tun hat die kann den Unterschied gar nicht erkennen verstehen Sie für die ist es das gleiche die müssen wir jetzt trainieren und wir müssen sie sozusagen von der Homepage alle Währung gleichermaßen eingehen lassen und mit der Voraussetzung das hat nichts mit dem Markt zu tun irgendwann verhalten und es können sie nicht sehen und sie können nicht sagen, die Software kann wir sehen aber mit der Klasse Analyse wird die Software. Hoffentlich sag ich mal erkennen wie wird der Kurs weitergehen und entsprechend das wird sie von alleine tun. Dazu müssen wir sozusagen halbes Jahr lang alle Währung rein wandern lassen ein halbes Jahr lang müssen alle Währungen einzeln aufgenommen werden und ohne dass sie das sehen können wo geht's hier nach oben und wo geht geht's nach unten wird die Software das von alleine lernen, ohne dass sie sozusagen sagen diese KI ist auf das angepasst, was sich um Kryptowährung dreht. Es macht in dem Fall keine Unterschied. Sie müssen das alles rein wandern lassen und jetzt wird sie das erkennen und muss unsere Swap alleine durchführen also die eine Möglichkeit ist sie setzen. Vorher sagen wir 20 Jahren ziehen oder 100.000 € in Bitcoin ein und haben jetzt klassischerweise 60.000. Also Sie können ausrechnen ne ganze Menge Geld das ist natürlich eine Möglichkeit dann sind sie glücklicher Gewinner? Weil dann haben sie jetzt sehr viel Geld. Profis sind sie noch lange nicht. Müssen Sie wissen, weil ein Profi sagt ich hab zehn Euro und ich hab ihn so oder so ohne ohne ohne Ben und aber hab ich in 30 Jahren 40 Milliarden € so muss man das verstehen weil wir müssen halt jetzt unsere Swap so ausführen das ist gut funktionieren lachen Sie mich nicht aus. Ich seh schon einige Leute, die denken, ob ich noch ob bei mir alles funktioniert. Diese Leute haben keine Ahnung, die wissen nicht worum es geht. Die tun nix. Also ich fang jetzt genau mit dem an. Ich fang jetzt erst mal an unsere Front. Also unser unseren Zugriff auf die Homepage im Allgemeinen mit SSL zu machen wenn die Leute mir da widersprechen wollen da haben sie die Sache einfach nicht verstanden die studieren keine Informatik. Und die nächste Voraussetzung ist folgendes noch eine Voraussetzung. Ich muss diesen Kurs KI eben besuchen deswegen brauche ich trotzdem des Front. And müssen Sie wissen, ich muss diesen Kurs besuchen. Hier gibt es viel zu lernen. Ich denke, das wird am Ende machbar sein. Ich muss jetzt trotzdem erst mal das Front entscheiden und damit fange ich jetzt an sozusagen genau okay 2 Minuten

Also jetzt üben wir unseren Standard HTTP request einfach mal kurz einen Moment

Sie sehen, hier ist sozusagen unser Verzeichnis, in denen gut und Apache zwei Root Verzeichnis heißt es aber ist egal wir müssen wissen was Root Verzeichnis heißt einfach Wurzelverzeichnis. Das ist die Frage von von was linux selber hat auch eins das ist einfach/das ist halt von unserem gesamten Server aber wir haben jetzt hier dies von unserem Apache zwei würde man so sagen Dokument Route egal und dann müssen wir jetzt sozusagen einfach mal normales Form reinschreiben und dann müssen wir normalen HTTPrequest erst mal per Telnet absetzen 2 Minuten /var/www/html/

Gut, sieht schon mal gut aus. Warten Sie einen Moment sieht gut aus

<?php
session_start ();
?>
<form method="POST" action="./form20250422.php">
<input type="text" name="form20250422001"></input>
<input type="submit"></input>
</form>
<?php
echo session_id () . "<br>\n";
setcookie ("form20250422002", "Die ist der erste Keks", time () + 3600);
echo htmlentities ($_POST ["form20250422001"]) . "<br>\n";
echo htmlentities ($_COOKIE ["form20250422002"]) . "<br>\n";
echo htmlentities ($_COOKIE ["form20250422003"]) . "<br>\n";
session_destroy ();
?>

Sind in unserem letzten Beitrag die normale Form jetzt sind sie die normale Form und jetzt müssen wir den HTTPrequest machen. Ich speicher den immer als Textdatei. Natürlich kann man ihn per Telnet einzeln eingeben. Macht keinen Spaß wenn die Verbindung zu lange geht, dann spring springt er einfach raus und das wird wahrscheinlich passieren weil sie brauchen ne Weile das einzugeben vermute ich jedenfalls und deswegen ist es bequemer und es in der Textdatei zu speichern und mir ne Umleitung einfach in Telnet rein zu tun. Das ist Punkt Nummer eins machen wir gleich mal.

Der request hat funktioniert

POST http://localhost/david/20250422/form20250422.php HTTP/1.1
host: localhost
Cookie: form20250422003="Ich bin das zweite Keks"
Content-Length: 32
Content-Type: application/x-www-form-urlencoded
form20250422001=Ich bin das Date

Trying ::1...
Connected to localhost.
Escape character is '^]'.
HTTP/1.1 200 OK
Date: Tue, 22 Apr 2025 07:26:32 GMT
Server: Apache/2.4.62 (Debian)
Set-Cookie: PHPSESSID=4orekgh548lohookrmjqmqth0e; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Set-Cookie: form20250422002=Die%20ist%20der%20erste%20Keks; expires=Tue, 22 Apr 2025 08:26:32 GMT; Max-Age=3600
Vary: Accept-Encoding
Content-Length: 237
Content-Type: text/html; charset=UTF-8

<form method="POST" action="./form20250422.php">
<input type="text" name="form20250422001"></input>
<input type="submit"></input>
</form>

4orekgh548lohookrmjqmqth0e<br>
Ich bin das Date<br>
<br>
&quot;Ich bin das zweite Keks&quot;<br>

Das Letztere ist die Antwort, und jetzt müssen wir das ganze per HTTPS machen. Dazu müssen wir unseren normalen Web Server benutzen, weil ich muss Zertifikate einrichten, wenn ich httpsbenutzen will das kann ich machen aber für Local Horst auf dem eigenen Rechner lohnt sich das so nicht hab ich keine Lust zu also musst du das Ding auf den Server. Ich nehme jetzt das selbe Ding und kopier es per SSH wie üblich auf dem Server und kann sozusagen das dann benutzen wie üblich per SSH d.h. der HTTPS Zugriff und dann kann man die Sache im ersten Schritt konkret üben.

Hab ich das Ding auf die Homepage kopiert erreichbar unter https://www.dvajda.de/test/20250422/form20250422.php Und ich muss das ganze noch mal machen den HTTPrequest normal per Telnet und ich hab hier auch das Problem. Ich kann per Telnet auch keine Daten direkt eingeben. Ich jedenfalls nicht. D.h. ich muss immer rein kopieren den request ich weiß ich weiß ich probier's mal aus gleich warten Sie einen Moment, aber diesmal kann ich die Abfrage sowohl per HTTP als auch per HTTPS machen, weil es in meiner Homepage ein Moment

Auf der Homepage, den request von gerade eben

Mein Server kann gar kein HTTP das lässt ja gar nicht so weil das wird alles auf httpsautomatisch umgeleitet. Das ist jetzt nicht tragisch weil wir wollen ja jetzt per SSL den Zugriff üben. Es geht generell schon aber er lässt eben keinen Zugriff mehr per HTTP zu ich hab das abgeschaltet.

Ist das Dokument had Movies heißt in dem Fall einfach nicht, dass es irgendwo anders hin bewegt wurde so klug ist mein Server nicht, sondern es ist im Port 443 und nicht Port 80 weil der lässt dir keine normalen HTTP Zugriff zu also können wir gleich anfangen mit unserem SSL Programm. Ich muss erst mal suchen wie d.h. wir gucken in Google. Wie heißt das Programm? Das müssen wir uns dann auch merken.

OpenSSL natürlich das müssen wir jetzt benutzen. Dieses Programm also

https://www.thomas-krenn.com/de/wiki/TCP_Port_443_(https)_Zugriff_mit_openssl_ Also das bietet sich jetzt an das müssen wir auch noch üben. Wie gesagt ich jedenfalls wie gesagt, ich bin sehr stark entschlüsseln beschäftigt. gpg hat nicht unbedingt was damit zu tun. Ob sie jetzt, ob sie jetzt SSH benutzen, ob sie es was auch immer sie benutzen SSL sie benutzen die selben Schlüssel. Das kann ich schon inzwischen ganz gut damit umgehen. Ich kann ganz gut was verschlüsseln. Sie sehen es auch bei der Lu 15 Jahre da können Sie auch ihre Texte verschlüsseln, ihre E-Mail verschlüsselt sind. In senden ist nichts spezielles. Trotzdem müssen Sie ein bisschen genauer üben. Also sie haben bei ihrem klassischen JPG finden Sie auch bei der Lu 15 übrigens auf der Homepage richtig da können Sie sozusagen ihre ihren da finden Sie den Schlüssel und können Ihre E-Mail verschlüsselt absetzen. Soweit bin ich inzwischen auch. Ich benutze auch SSH ein bisschen nacharbeiten muss ich hier machen. Ich übe. Wie gesagt das ist Teil meiner Übung. Da sehen Sie in meinen Übungen. Ich gebe verschlüsselt Nachrichten ich verschlüsseln mit gpg muss man ein bisschen erweitern. Weil was ich bei der Übung brauche. Also ich kenne auch die Schlüssel Algorithmen bis zum Auswendiglernen gehört auch zu meinem klassischen Übung. Es gibt halt Camelia und zwar 192, 200 56,512 und so weiter das sind die ein und dann gibt es dann gibt es eben noch eben blowfish und so weiter. Aber jetzt müssen wir auf aufpassen. Erstens mal alle Schlüssel landen im selben Verzeichnis im im bei uns auf. Auf unseren in unserem Heimat Verzeichnis ist Punkt Nummer eins.

Trotzdem benutzen Openssl nicht. Also sie benutzen nicht die selbe Ding was, was unser SSH benutzt also wir müssen hier trotzdem unterscheiden. Wir können es überall mit den Zertifikaten. Ich bin inzwischen ganz gut 100 prozent noch nicht trotzdem. Wir müssen das jetzt einfach benutzen. Das ist Problem Nummer eins, wie gesagt, Standardübung von mir mit gpg was zu verschlüsseln. Das geht bei mir ohne Probleme bisschen nach üben bei SSH fehlt mir auch noch da muss ich auch noch ein bisschen klüger werden gehört zu meinen Standard Übung und wie gesagt auswendig lernen der Verschlüsselung Algorithmen lohnt sich immer deswegen mache ich ja zum Beispiel unter anderem auch Prüfsummen und so weiter das ist jetzt Punkt eins aber jetzt der Punkt Nummer zwei eben der Zugriff einfach per open SSL. Das benutzen wir sowieso immer innerhalb des HTTPS überall für unsere Schlüssel für alles jetzt müssen aber erst mal nur den Zugriff üben. Also der Rest des Teil meiner typischen Übungsaufgaben mache ich auch weiter, wenn der anarchistische Teil nach 10:00 Uhr beendet ist. Also wenn 10:00 Uhr rum ist dann fange ich wieder normal an zu lernen. Aber bis hierhin machen wir jetzt einfach so Übung kreativ sagen wir kreativ und wie gesagt also die Verschlüsselung, Algorithmen SSH und so weiter gehört alles mit dazu aber jetzt müssen wir einfach mal die Ver verschlüsselte Abfrage. Absenden, dass die tut. Das ist Punkt Nummer eins. Das machen wir jetzt

https://www.thomas-krenn.com/de/wiki/TCP_Port_443_(https)_Zugriff_mit_openssl_ ...

Ich gucke, ob es zur Openssl auf Ubuntu User das sind eigentlich die besten Programmbeschreibung auf Ubuntu User. Die gelten auch für debian . Ich benutz Debian ihn müssen Sie müssen. Sie gucken, finden Sie hier finden Sie hier. Finden Sie hier eine bessere Beschreibung für OpenSSL oder eine andere wichtig ist, so wie sie jedes Programm einzeln lernen. Also auf ubuntu Users jedes Programm einzeln, Sie müssen nicht nicht glauben, sozusagen, dass sie nicht nicht glauben. Sie müssen nicht glauben, dass, wenn sie dieselbe Verschlüsselung bei SSH oder sonst wo benutzen, müssen sie jetzt nicht davon ausgehen, dass sie nicht jedes Programm einzeln lesen müssen. Das müssen wir in dem Fall auch Also wir müssen open SSL ein in verstehen sozusagen an und für sich gut. Jetzt machen wir das. Wir gucken noch bei Ubuntu User und setzen unseren request ab.

Also der erste Teil hat funktioniert ein bisschen falsch ist es gelaufen es hat schon mal funktioniert für an und für sich was nicht funktioniert hat. Ihr kommt Bad request. Irgendwas hat nicht getan aber dass der SSL Zugriff hat generell getan also der der HTTPrequest hat generell getan es hat gut funktioniert. Irgendwas stimmt noch nicht hier kam Bad request. Ich muss gucken wo das Problem ist. Ich weiß es wahrscheinlich hab ich hier doch irgendwo dann war das vorher mit dem Move. Da hatte doch wohl einen anderen GrundHatte wohl einen anderen Grund. Es hat generell getan aber irgendwas hat er hier nicht gefunden. Ich muss mal kurz gucken ich mach Screenshots rein.

POST http://www.dvajda.de/test/20250422/form20250422.php HTTP/1.1
host: localhost
Cookie: form20250422003="Ich bin das zweite Keks"
Content-Length: 32
Content-Type: application/x-www-form-urlencoded
form20250422001=Ich bin das Date

read R BLOCK
POST http://www.dvajda.de/test/20250422/form20250422.php HTTP/1.1
host: localhost
Cookie: form20250422003="Ich bin das zweite Keks"
Content-Length: 32
Content-Type: application/x-www-form-urlencoded
form20250422001=Ich bin das Date
HTTP/1.1 400 Bad Request
Date: Tue, 22 Apr 2025 07:45:14 GMT
Server: Apache/2.4.62 (Debian)
Content-Length: 306
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.62 (Debian) Server at www.dvajda.de Port 443</address>
</body></html>
closed
david@work:~$

\includegraphics[width=\textwidth]{Screenshot_220250422_142726.png}

Die Adresse stimmt ich weiß nicht wo das Problem ist. Die Adresse stimmt ich weiß nicht wo das Problem ist. Ich hab keine Ahnung

Ich weiß es doch, weil da ich ich kann sogar erklären ich weiß es doch. Warten Sie ich kann sogar ganz genau erklären. Ich hab ja vorher gesagt, als ich den Töllner Zugriff gemacht hab, dass das Dokument verzogen ist. Da stand ja vorher da das Dokument ist verzogen und ich hab gesagt ja aber das ist ja die richtige Adresse. Also es ist nicht verzogen. Das liegt daran, dass ich hier HTTP habe und httpsalso Support 80 und Bord 443 auf der einen Seite ja und jetzt sehe ich hier aber auch ich hab hier gar nicht die normale Adresse eingegeben sondern ich hab ja http eingegeben dann muss ich's noch mal probieren. Ob's dann vielleicht funktioniert.

Das hat leider wieder nicht funktioniert. Da steht wieder Bad request leider ich weiß nicht woran es liegt.

\includegraphics[width=\textwidth]{Screenshot_220250421_223619.png}

POST https://www.dvajda.de/test/20250422/form20250422.php HTTP/1.1
host: localhost
Cookie: form20250422003="Ich bin das zweite Keks"
Content-Length: 32
Content-Type: application/x-www-form-urlencoded

form20250422001=Ich bin das Date
HTTP/1.1 400 Bad Request

In dem Fall request. Ich weiß nicht wo das Problem liegt ehrlich gesagt, mal gucken.

Ich weiß, woran es liegt. Vielleicht auch. Da steht Host: Local, Host . Wahrscheinlich muss der Host hier geändert werden

POST https://www.dvajda.de/test/20250422/form20250422.php HTTP/1.1
host: www.dvajda.deHTTP/1.1 400 Bad Request
Date: Tue, 22 Apr 2025 07:59:45 GMT
Server: Apache/2.4.62 (Debian)
Content-Length: 306
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.62 (Debian) Server at www.dvajda.de Port 443</address>
</body></html>
closed
david@work:~$ host: www.dvajda.de
Kommt irgendwie Bad Request . Ich weiß nicht, woran es liegt. Keine Ahnung. Müsste man mal gucken, müsste man mal gucken

Server public key is 256 bit Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE No ALPN negotiated Early data was not sent Verify return code: 0 (ok) — DONE david@work:  $cat /var/www/html/david/20250422/httprequest20250422c.txt \vert openssl s_clien...
...tiated
Early data was not sent
Verify return code: 0 (ok)
---
DONE
david@work:~$ cat /var/www/html/david/20250422/httprequest20250422c.txt | openssl s_client -connect www.dvajda.de:https CONNECTED(00000003)

depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1 verify return:1 depth=1 C = US, O = Let's Encrypt, CN = E6 verify return:1 depth=0 CN = www.dvajda.de verify return:1 — Certificate chain 0 s:CN = www.dvajda.de i:C = US, O = Let's Encrypt, CN = E6 a:PKEY: id-ecPublicKey, 256 (bit); sigalg: ecdsa-with-SHA384 v:NotBefore: Mar 3 14:56:47 2025 GMT; NotAfter: Jun 1 14:56:46 2025 GMT 1 s:C = US, O = Let's Encrypt, CN = E6 i:C = US, O = Internet Security Research Group, CN = ISRG Root X1 a:PKEY: id-ecPublicKey, 384 (bit); sigalg: RSA-SHA256 v:NotBefore: Mar 13 00:00:00 2024 GMT; NotAfter: Mar 12 23:59:59 2027 GMT — Server certificate —–BEGIN CERTIFICATE—– MIIDezCCAwKgAwIBAgISBPotejlpxR7Fkj/IX67jNJF/MAoGCCqGSM49BAMDMDIx CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF NjAeFw0yNTAzMDMxNDU2NDdaFw0yNTA2MDExNDU2NDZaMBgxFjAUBgNVBAMTDXd3 dy5kdmFqZGEuZGUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARzvQqP7WW0rnCU 6/hRUB0WsmO9XLfMStouEMBtt03pi4HU5Rplbkf4xxW+yJfmMszqM3lcY0qPbgIj 0GXEglV9o4ICEDCCAgwwDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQWMBQGCCsGAQUF BwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQcKaiRGhaTuRLj v/9c3yr5BTaRjTAfBgNVHSMEGDAWgBSTJ0aYA6lRaI6Y1sRCSNsjv1iU0jBVBggr BgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9lNi5vLmxlbmNyLm9yZzAi BggrBgEFBQcwAoYWaHR0cDovL2U2LmkubGVuY3Iub3JnLzAYBgNVHREEETAPgg13 d3cuZHZhamRhLmRlMBMGA1UdIAQMMAowCAYGZ4EMAQIBMIIBBQYKKwYBBAHWeQIE AgSB9gSB8wDxAHcAouMK5EXvva2bfjjtR2d3U9eCW4SU1yteGyzEuVCkR+cAAAGV XLgB5AAABAMASDBGAiEA/pXEFunXBRUT7tD6JE4A5q8kUR1Fwf3ZDZ6i+LbsCs4C IQDOnlVB7IjET62NOiOiDuDP36uu0OTSpo0bgMu/xhZ0lAB2AE51oydcmhDDOFts 1N8/Uusd8OCOG41pwLH6ZLFimjnfAAABlVy4Ac8AAAQDAEcwRQIgas8m7g0h+Ljk EQchzZxIvPbe+SPT6zWHK/0b0QyRPhQCIQD2fvV6qSLAYc+zns4UmDifFEDhBuMG VJZDo5MGklrIdjAKBggqhkjOPQQDAwNnADBkAjAbFjMXrLGjR7NGbuKGfvy8daGQ 578K0GsynmeKe8PAOmAV50oNKD0yde1iFn4hOOACMCNVSww/rUxHprViYH9eg5RC jCYYZTGM703GnT6X99i6jvacpLoCW+3tRKaWTLV1+w== —–END CERTIFICATE—– subject=CN = www.dvajda.de issuer=C = US, O = Let's Encrypt, CN = E6 — No client certificate CA names sent Peer signing digest: SHA256 Peer signature type: ECDSA Server Temp Key: X25519, 253 bits — SSL handshake has read 2390 bytes and written 399 bytes Verification: OK — New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384 Server public key is 256 bit Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE No ALPN negotiated Early data was not sent Verify return code: 0 (ok) — DONE david@work:  $david@work:~$

Hat jetzt erst mal nichts gebracht. Kann auch sein, dass da was anderes nicht funktioniert hat. Ich kann's auch noch mal ganz mal jedenfalls die Zertifikate sind angekommen das kann ich eindeutig sagen außer einem anderen Grund nicht weil das sagt irgendwie meckert aber ich kann mir mit dem Firefox die Zertifikate anzeigen lassen, ganz einfach Und hier sieht man schon, dass ich zeige den Screenshot die Zertifikate sind generell da er vertraut dir nur nicht, weil ich die selber ausgestellt hab. Aber sie sind da gut dann haben wir dich schon mal geschafft und jetzt gehe ich eine rauchen machen ein bisschen Pause. Im nächsten Schritt probieren wir Mit Openssl unsere HTTPrequest nicht mit Telnet abzusetzen für normales HTTP,sondern für SSL und probieren das hinkriegen, dass das dann funktioniert, damit wir irgendwann mal endlich unseren Boot schreiben können, womit wir mal normal aufs Internet zugreifen können außerhalb des Broers. Ich glaub das brauchen wir sowieso für später das Problem Nummer eins und dann müssen wir uns paar Sachen notieren und wir müssen das genauer studieren, was wir bei dem SSH habenandere Möglichkeiten anzugeben weil es gibt ja noch mehr als den Schlüssel und so weiter müssen wir mal gucken

david@www1:~$ openssl x509 -signkey www20250422certtest.key -in www20250422certtest.csr -req -days 365 -out www20250422certtest.crt
Certificate request self-signature ok
subject=C = DE, ST = Some-State, L = Tuebingen, O = Internet Widgits Pty Ltd, CN = www20250422certtest, emailAddress = david@dvajda.de
david@www1:~$

Nur noch kurze Frage, warum steht da verwendet? Dieses Zertifikat wird nicht vertraut das steht nicht dass es nicht funktioniert. Verstehen Sie das Zertifikat ist da das sag ich ja hier kommt jedes Mal die Meldung weil sie eben keine CA haben sagen wir mal die passt oder wir müssen überlegen, hier steht vom Aussteller selber signiert. Soweit ich weiß brauchen Sie ne globale CA aber kann ja auch was anderes sein weil hier steht vom Aussteller selber signiert können wir kurz drüber nachdenken wenn wir jetzt doch noch unsere eigene CA verwenden Also hier steht vom Aussteller selbst signiert kurze Frage was ist wenn ich dieses Ding jetzt zum Beispiel an mein Web Server sende also mein Web Server sag ich kurz ist ein anderer Rechner wie der hier ist. Auch im Web Server ist ein anderer Rechner. Also so wie ich das verstanden habe brauchen Sie eine globale CA weltweit wenn ich jetzt drüber nachdenke es ist kein Wunder, dass jetzt hier steht. Diesem Zertifikat wird nicht vertraut. Sie müssen unterscheiden, das Zertifikat tutdas ist ein unterschied. Es kann auch sein, dass gar kein da ist oder es tut nicht oder sonst irgendwas das tut schon. Nur hier steht selbst signiert worden. Soweit ich es verstanden hat, brauchen Sie was globales? Aber hier steht ja selbst signiert wir können mal ausprobieren ich erzeuge ein CSR ein Zertifikats Antrag. Sende es an meinen Server und er hat die selben Programme auch und lass es mal von dem ausstellen, was dann passieren wird. Wir wissen ja, wir können doch CSR selber erstellen mal gucken

www20250422certtest verwendet ein ungültiges Sicherheitszertifikat. Dem Zertifikat wird nicht vertraut, weil es vom Aussteller selbst signiert wurde.

\includegraphics[width=\textwidth]{Screenshot_220250422_145254.png} bis \includegraphics[width=\textwidth]{Screenshot_220250422_143518.png}

SSLEngine on
        SSLCertificateFile /home/david/www20250422certtest.crt
        SSLCertificateKeyFile /home/david/www20250422certtest.key

<VirtualHost 127.0.0.1:443>
        SSLEngine on
        SSLCertificateFile /home/david/www20250422certtest.crt
        SSLCertificateKeyFile /home/david/www20250422certtest.key
        ServerName www20250422certtest
        ServerAdmin david@dvajda.de
        DocumentRoot /var/www/html/www20250422certtest/
</VirtualHost>
\begin{verbatim}

root@work:/etc/apache2/sites-enabled# cp certtest20250422.conf certtest20250422ssl.conf
root@work:/etc/apache2/sites-enabled# nano certtest20250422ssl.conf
root@work:/etc/apache2/sites-enabled# service apache2 restart
root@work:/etc/apache2/sites-enabled# nano certtest20250422ssl.conf
root@work:/etc/apache2/sites-enabled# cat certtest20250422ssl.conf
<VirtualHost 127.0.0.1:443>
        SSLEngine on
        SSLCertificateFile /home/david/www20250422certtest.crt
        SSLCertificateKeyFile /home/david/www20250422certtest.key
        ServerName www20250422certtest
        ServerAdmin david@dvajda.de
        DocumentRoot /var/www/html/www20250422certtest/
</VirtualHost>

root@work:/etc/apache2/sites-enabled#

\includegraphics[width=\textwidth]{Screenshot_220250422_143359.png}

david@work:~$ openssl req -newkey rsa:2048 -nodes -keyout www20250422certtest.key -x509 -days 365 -out www20250422certtest.crt
.....+.+..............+.+........+.+..+..........+..+.......+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+.....+.+..+.+..............+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+..+.......+.....+......+..........+.....+.......+.....+............+...+..................+.........+.+......+.........+......+...+............+......+..+......+.+......+.........+.....+..........+.....+.+...+..+...+......+.+............+.....+.............+............+..+..........+...........+....+..........................+...+....+.....+............+...+..........+......+..+...+......+.+...........................+..+......+....+.....+.............+.....+.......+.....+....+.....+.+..................+...+..+.......+......+.....+...+.........+...+....+.........+..+.......+..+.+...+..+.......+.....+.+.....+.+.........+..+............+.............+...+..+...+.+..............+......+.+...+..+.......+...+............+.....+...+....+..............+....+...+...+...........+...+..........+...+..............+.........+......+....+..+.......+......+.....+....+......+..+...+......+...............+.........+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.....+...+....+..+.+............+..+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*....+......+.........+..............+.+.....+...+.+.........+..+..........+......+............+........+.............+..+...+.......+.....+.........+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:dvajda.de
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:www20250422certtest
Email Address []:david@dvajda.de
david@work:~$ ls www20250422certtest.
www20250422certtest.crt  www20250422certtest.key
david@work:~$ ls www20250422certtest.

\includegraphics[width=\textwidth]{Screenshot_220250422_143012.png}

Jetzt gut und jetzt gut und jetzt müssen wir die Zertifikate neu erstellen für diesen komischen Domain Namen und wenn wir das haben, dann binden was er ein dann müssen wir nachgucken, wie das bei Apache zwei geht und dann können wir von dem eigenen Browser auf den eigenen im eigenen innerhalb des eigenen Rechners im eigenen Server probieren mitZertifikaten zu zurückzugreifen. Natürlich wird er sich beschweren wahrscheinlich weil er die nicht die Zertifizierungs Einheit nicht kennt die Zertifizierungsstelle nicht kennt

root@work:/etc/apache2/sites-enabled# cat certtest20250422.conf
<VirtualHost 127.0.0.1:80>
        ServerName www20250422certtest
        ServerAdmin david@dvajda.de
        DocumentRoot /var/www/html/www20250422certtest/
</VirtualHost>
root@work:/etc/apache2/sites-enabled#

\includegraphics[width=\textwidth]{Screenshot_220250422_142726.png}

Jetzt gut und jetzt gut und jetzt müssen wir die Zertifikate neu erstellen für diesen komischen Domain Namen und wenn wir das haben, dann binden was er ein dann müssen wir nachgucken, wie das bei Apache zwei geht und dann können wir von dem eigenen Browser auf den eigenen im eigenen innerhalb des eigenen Rechners im eigenen Server probieren mitZertifikaten zu zurückzugreifen. Natürlich wird er sich beschweren wahrscheinlich weil er die nicht die Zertifizierungs Einheit nicht kennt die Zertifizierungsstelle nicht kennt

Das alte Problem, wenn sie genau hin kucken da ist wieder das alte Problem mit dem Konfi File. Ich hab ein Punkt statt dem Doppelpunkt gemacht, wenn sie den Server Adresse hinschreiben also IP Adresse dann sehen Sie warum das falsch ist weil dann hat die IP Adresse fünf Stellen fünf, 8 Bit Byte geht natürlich nicht das war ein Fehler deswegen hat nicht funktioniert.

Tut und im nächsten Schritt aufrufen im Browser, ob die Name gut funktioniert und alles gut funktioniert

root@work:/etc/apache2/sites-enabled# PATH="$PATH:/usr/sbin"
root@work:/etc/apache2/sites-enabled# service apache2 restra
Usage: apache2 {start|stop|graceful-stop|restart|reload|force-reload}
root@work:/etc/apache2/sites-enabled# service apache2 restart
root@work:/etc/apache2/sites-enabled#

\includegraphics[width=\textwidth]{Screenshot_220250422_142124.png}r

Server public key is 256 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
DONE
david@work:~$ cat /var/www/html/david/20250422/httprequest20250422c.txt | openssl s_client -connect www.dvajda.de:https
CONNECTED(00000003)
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = E6
verify return:1
depth=0 CN = www.dvajda.de
verify return:1
---
Certificate chain
 0 s:CN = www.dvajda.de
   i:C = US, O = Let's Encrypt, CN = E6
   a:PKEY: id-ecPublicKey, 256 (bit); sigalg: ecdsa-with-SHA384
   v:NotBefore: Mar  3 14:56:47 2025 GMT; NotAfter: Jun  1 14:56:46 2025 GMT
 1 s:C = US, O = Let's Encrypt, CN = E6
   i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
   a:PKEY: id-ecPublicKey, 384 (bit); sigalg: RSA-SHA256
   v:NotBefore: Mar 13 00:00:00 2024 GMT; NotAfter: Mar 12 23:59:59 2027 GMT
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDezCCAwKgAwIBAgISBPotejlpxR7Fkj/IX67jNJF/MAoGCCqGSM49BAMDMDIx
CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF
NjAeFw0yNTAzMDMxNDU2NDdaFw0yNTA2MDExNDU2NDZaMBgxFjAUBgNVBAMTDXd3
dy5kdmFqZGEuZGUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARzvQqP7WW0rnCU
6/hRUB0WsmO9XLfMStouEMBtt03pi4HU5Rplbkf4xxW+yJfmMszqM3lcY0qPbgIj
0GXEglV9o4ICEDCCAgwwDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQWMBQGCCsGAQUF
BwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQcKaiRGhaTuRLj
v/9c3yr5BTaRjTAfBgNVHSMEGDAWgBSTJ0aYA6lRaI6Y1sRCSNsjv1iU0jBVBggr
BgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9lNi5vLmxlbmNyLm9yZzAi
BggrBgEFBQcwAoYWaHR0cDovL2U2LmkubGVuY3Iub3JnLzAYBgNVHREEETAPgg13
d3cuZHZhamRhLmRlMBMGA1UdIAQMMAowCAYGZ4EMAQIBMIIBBQYKKwYBBAHWeQIE
AgSB9gSB8wDxAHcAouMK5EXvva2bfjjtR2d3U9eCW4SU1yteGyzEuVCkR+cAAAGV
XLgB5AAABAMASDBGAiEA/pXEFunXBRUT7tD6JE4A5q8kUR1Fwf3ZDZ6i+LbsCs4C
IQDOnlVB7IjET62NOiOiDuDP36uu0OTSpo0bgMu/xhZ0lAB2AE51oydcmhDDOFts
1N8/Uusd8OCOG41pwLH6ZLFimjnfAAABlVy4Ac8AAAQDAEcwRQIgas8m7g0h+Ljk
EQchzZxIvPbe+SPT6zWHK/0b0QyRPhQCIQD2fvV6qSLAYc+zns4UmDifFEDhBuMG
VJZDo5MGklrIdjAKBggqhkjOPQQDAwNnADBkAjAbFjMXrLGjR7NGbuKGfvy8daGQ
578K0GsynmeKe8PAOmAV50oNKD0yde1iFn4hOOACMCNVSww/rUxHprViYH9eg5RC
jCYYZTGM703GnT6X99i6jvacpLoCW+3tRKaWTLV1+w==
-----END CERTIFICATE-----
subject=CN = www.dvajda.de
issuer=C = US, O = Let's Encrypt, CN = E6
---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: ECDSA
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 2389 bytes and written 399 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 256 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
DONE
david@work:~$ cat /var/www/html/david/20250422/httprequest20250422c.txt | openssl s_client -connect www.dvajda.de:https
CONNECTED(00000003)

depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = E6
verify return:1
depth=0 CN = www.dvajda.de
verify return:1
---
Certificate chain
 0 s:CN = www.dvajda.de
   i:C = US, O = Let's Encrypt, CN = E6
   a:PKEY: id-ecPublicKey, 256 (bit); sigalg: ecdsa-with-SHA384
   v:NotBefore: Mar  3 14:56:47 2025 GMT; NotAfter: Jun  1 14:56:46 2025 GMT
 1 s:C = US, O = Let's Encrypt, CN = E6
   i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
   a:PKEY: id-ecPublicKey, 384 (bit); sigalg: RSA-SHA256
   v:NotBefore: Mar 13 00:00:00 2024 GMT; NotAfter: Mar 12 23:59:59 2027 GMT
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDezCCAwKgAwIBAgISBPotejlpxR7Fkj/IX67jNJF/MAoGCCqGSM49BAMDMDIx
CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF
NjAeFw0yNTAzMDMxNDU2NDdaFw0yNTA2MDExNDU2NDZaMBgxFjAUBgNVBAMTDXd3
dy5kdmFqZGEuZGUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARzvQqP7WW0rnCU
6/hRUB0WsmO9XLfMStouEMBtt03pi4HU5Rplbkf4xxW+yJfmMszqM3lcY0qPbgIj
0GXEglV9o4ICEDCCAgwwDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQWMBQGCCsGAQUF
BwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQcKaiRGhaTuRLj
v/9c3yr5BTaRjTAfBgNVHSMEGDAWgBSTJ0aYA6lRaI6Y1sRCSNsjv1iU0jBVBggr
BgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9lNi5vLmxlbmNyLm9yZzAi
BggrBgEFBQcwAoYWaHR0cDovL2U2LmkubGVuY3Iub3JnLzAYBgNVHREEETAPgg13
d3cuZHZhamRhLmRlMBMGA1UdIAQMMAowCAYGZ4EMAQIBMIIBBQYKKwYBBAHWeQIE
AgSB9gSB8wDxAHcAouMK5EXvva2bfjjtR2d3U9eCW4SU1yteGyzEuVCkR+cAAAGV
XLgB5AAABAMASDBGAiEA/pXEFunXBRUT7tD6JE4A5q8kUR1Fwf3ZDZ6i+LbsCs4C
IQDOnlVB7IjET62NOiOiDuDP36uu0OTSpo0bgMu/xhZ0lAB2AE51oydcmhDDOFts
1N8/Uusd8OCOG41pwLH6ZLFimjnfAAABlVy4Ac8AAAQDAEcwRQIgas8m7g0h+Ljk
EQchzZxIvPbe+SPT6zWHK/0b0QyRPhQCIQD2fvV6qSLAYc+zns4UmDifFEDhBuMG
VJZDo5MGklrIdjAKBggqhkjOPQQDAwNnADBkAjAbFjMXrLGjR7NGbuKGfvy8daGQ
578K0GsynmeKe8PAOmAV50oNKD0yde1iFn4hOOACMCNVSww/rUxHprViYH9eg5RC
jCYYZTGM703GnT6X99i6jvacpLoCW+3tRKaWTLV1+w==
-----END CERTIFICATE-----
subject=CN = www.dvajda.de
issuer=C = US, O = Let's Encrypt, CN = E6
---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: ECDSA
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 2390 bytes and written 399 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 256 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
DONE
david@work:~$
david@work:~$

Hat jetzt erst mal nichts gebracht. Kann auch sein, dass da was anderes nicht funktioniert hat. Ich kann's auch noch mal ganz mal jedenfalls die Zertifikate sind angekommen das kann ich eindeutig sagen außer einem anderen Grund nicht weil das sagt irgendwie meckert aber ich kann mir mit dem Firefox die Zertifikate anzeigen lassen, ganz einfach Und hier sieht man schon, dass ich zeige den Screenshot die Zertifikate sind generell da er vertraut dir nur nicht, weil ich die selber ausgestellt hab. Aber sie sind da gut dann haben wir dich schon mal geschafft und jetzt gehe ich eine rauchen machen ein bisschen Pause. Im nächsten Schritt probieren wir Mit Openssl unsere HTTPrequest nicht mit Telnet abzusetzen für normales HTTP,sondern für SSL und probieren das hinkriegen, dass das dann funktioniert, damit wir irgendwann mal endlich unseren Boot schreiben können, womit wir mal normal aufs Internet zugreifen können außerhalb des Broers. Ich glaub das brauchen wir sowieso für später das Problem Nummer eins und dann müssen wir uns paar Sachen notieren und wir müssen das genauer studieren, was wir bei dem SSH habenandere Möglichkeiten anzugeben weil es gibt ja noch mehr als den Schlüssel und so weiter müssen wir mal gucken

david@www1:~$ openssl x509 -signkey www20250422certtest.key -in www20250422certtest.csr -req -days 365 -out www20250422certtest.crt
Certificate request self-signature ok
subject=C = DE, ST = Some-State, L = Tuebingen, O = Internet Widgits Pty Ltd, CN = www20250422certtest, emailAddress = david@dvajda.de
david@www1:~$

Nur noch kurze Frage, warum steht da verwendet? Dieses Zertifikat wird nicht vertraut das steht nicht dass es nicht funktioniert. Verstehen Sie das Zertifikat ist da das sag ich ja hier kommt jedes Mal die Meldung weil sie eben keine CA haben sagen wir mal die passt oder wir müssen überlegen, hier steht vom Aussteller selber signiert. Soweit ich weiß brauchen Sie ne globale CA aber kann ja auch was anderes sein weil hier steht vom Aussteller selber signiert können wir kurz drüber nachdenken wenn wir jetzt doch noch unsere eigene CA verwenden Also hier steht vom Aussteller selbst signiert kurze Frage was ist wenn ich dieses Ding jetzt zum Beispiel an mein Web Server sende also mein Web Server sag ich kurz ist ein anderer Rechner wie der hier ist. Auch im Web Server ist ein anderer Rechner. Also so wie ich das verstanden habe brauchen Sie eine globale CA weltweit wenn ich jetzt drüber nachdenke es ist kein Wunder, dass jetzt hier steht. Diesem Zertifikat wird nicht vertraut. Sie müssen unterscheiden, das Zertifikat tutdas ist ein unterschied. Es kann auch sein, dass gar kein da ist oder es tut nicht oder sonst irgendwas das tut schon. Nur hier steht selbst signiert worden. Soweit ich es verstanden hat, brauchen Sie was globales? Aber hier steht ja selbst signiert wir können mal ausprobieren ich erzeuge ein CSR ein Zertifikats Antrag. Sende es an meinen Server und er hat die selben Programme auch und lass es mal von dem ausstellen, was dann passieren wird. Wir wissen ja, wir können doch CSR selber erstellen mal gucken

www20250422certtest verwendet ein ungültiges Sicherheitszertifikat. Dem Zertifikat wird nicht vertraut, weil es vom Aussteller selbst signiert wurde.

\includegraphics[width=\textwidth]{Screenshot_220250422_145254.png} bis \includegraphics[width=\textwidth]{Screenshot_220250422_143518.png}

SSLEngine on
        SSLCertificateFile /home/david/www20250422certtest.crt
        SSLCertificateKeyFile /home/david/www20250422certtest.key

<VirtualHost 127.0.0.1:443>
        SSLEngine on
        SSLCertificateFile /home/david/www20250422certtest.crt
        SSLCertificateKeyFile /home/david/www20250422certtest.key
        ServerName www20250422certtest
        ServerAdmin david@dvajda.de
        DocumentRoot /var/www/html/www20250422certtest/
</VirtualHost>

root@work:/etc/apache2/sites-enabled# cp certtest20250422.conf certtest20250422ssl.conf
root@work:/etc/apache2/sites-enabled# nano certtest20250422ssl.conf
root@work:/etc/apache2/sites-enabled# service apache2 restart
root@work:/etc/apache2/sites-enabled# nano certtest20250422ssl.conf
root@work:/etc/apache2/sites-enabled# cat certtest20250422ssl.conf
<VirtualHost 127.0.0.1:443>
        SSLEngine on
        SSLCertificateFile /home/david/www20250422certtest.crt
        SSLCertificateKeyFile /home/david/www20250422certtest.key
        ServerName www20250422certtest
        ServerAdmin david@dvajda.de
        DocumentRoot /var/www/html/www20250422certtest/
</VirtualHost>
root@work:/etc/apache2/sites-enabled#

\includegraphics[width=\textwidth]{Screenshot_220250422_143359.png}

david@work:~$ openssl req -newkey rsa:2048 -nodes -keyout www20250422certtest.key -x509 -days 365 -out www20250422certtest.crt
.....+.+..............+.+........+.+..+..........+..+.......+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+.....+.+..+.+..............+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+..+.......+.....+......+..........+.....+.......+.....+............+...+..................+.........+.+......+.........+......+...+............+......+..+......+.+......+.........+.....+..........+.....+.+...+..+...+......+.+............+.....+.............+............+..+..........+...........+....+..........................+...+....+.....+............+...+..........+......+..+...+......+.+...........................+..+......+....+.....+.............+.....+.......+.....+....+.....+.+..................+...+..+.......+......+.....+...+.........+...+....+.........+..+.......+..+.+...+..+.......+.....+.+.....+.+.........+..+............+.............+...+..+...+.+..............+......+.+...+..+.......+...+............+.....+...+....+..............+....+...+...+...........+...+..........+...+..............+.........+......+....+..+.......+......+.....+....+......+..+...+......+...............+.........+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.....+...+....+..+.+............+..+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*....+......+.........+..............+.+.....+...+.+.........+..+..........+......+............+........+.............+..+...+.......+.....+.........+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:dvajda.de
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:www20250422certtest
Email Address []:david@dvajda.de
david@work:~$ ls www20250422certtest.
www20250422certtest.crt  www20250422certtest.key
david@work:~$ ls www20250422certtest.

\includegraphics[width=\textwidth]{Screenshot_220250422_143012.png}

Jetzt gut und jetzt gut und jetzt müssen wir die Zertifikate neu erstellen für diesen komischen Domain Namen und wenn wir das haben, dann binden was er ein dann müssen wir nachgucken, wie das bei Apache zwei geht und dann können wir von dem eigenen Browser auf den eigenen im eigenen innerhalb des eigenen Rechners im eigenen Server probieren mitZertifikaten zu zurückzugreifen. Natürlich wird er sich beschweren wahrscheinlich weil er die nicht die Zertifizierungs Einheit nicht kennt die Zertifizierungsstelle nicht kennt

root@work:/etc/apache2/sites-enabled# cat certtest20250422.conf
<VirtualHost 127.0.0.1:80>
        ServerName www20250422certtest
        ServerAdmin david@dvajda.de
        DocumentRoot /var/www/html/www20250422certtest/
</VirtualHost>
root@work:/etc/apache2/sites-enabled#

\includegraphics[width=\textwidth]{Screenshot_220250422_142726.png}

Jetzt gut und jetzt gut und jetzt müssen wir die Zertifikate neu erstellen für diesen komischen Domain Namen und wenn wir das haben, dann binden was er ein dann müssen wir nachgucken, wie das bei Apache zwei geht und dann können wir von dem eigenen Browser auf den eigenen im eigenen innerhalb des eigenen Rechners im eigenen Server probieren mitZertifikaten zu zurückzugreifen. Natürlich wird er sich beschweren wahrscheinlich weil er die nicht die Zertifizierungs Einheit nicht kennt die Zertifizierungsstelle nicht kennt

Das alte Problem, wenn sie genau hin kucken da ist wieder das alte Problem mit dem Konfi File. Ich hab ein Punkt statt dem Doppelpunkt gemacht, wenn sie den Server Adresse hinschreiben also IP Adresse dann sehen Sie warum das falsch ist weil dann hat die IP Adresse fünf Stellen fünf, 8 Bit Byte geht natürlich nicht das war ein Fehler deswegen hat nicht funktioniert.

Tut und im nächsten Schritt aufrufen im Browser, ob die Name gut funktioniert und alles gut funktioniert

root@work:/etc/apache2/sites-enabled# PATH="$PATH:/usr/sbin"
root@work:/etc/apache2/sites-enabled# service apache2 restra
Usage: apache2 {start|stop|graceful-stop|restart|reload|force-reload}
root@work:/etc/apache2/sites-enabled# service apache2 restart
root@work:/etc/apache2/sites-enabled#

\includegraphics[width=\textwidth]{Screenshot_220250422_142124.png} so sehen zum beispiel meine asm diagramme aus, fuer komplexe schaltwerke automatisch generiert..

so, zum beispiel nur mit ueberschriften drin und mit den selber gemachten aufgaben, sehen nachher die aufgaben aus, die vom computer generiert sind, dies mal in einem stueck ausgefuehrt.

# ich mache, wenn ich gleich fertig bin schon mal eine mmx i568 std aufgabe, so wie cpuid - so wie komplexes schaltwerk - .. bald fertig.

das waere z.B. so eine sache.

und hier als html - die matrix stimmt noch nicht, zum multiplizieren, das asm diagramm.

#!/bin/bash

# (C) David Vajda
# Generate Exersices 2025 - 04 - 20 like
# 2025-04-20
confdir="./config"
controldir="$confdir/control"
themesdirorig="$controldir/themescsv"
themesdir="$controldir/themescsvx"
vhdldir="./vhdl"
thedate=$(date)
fileending=".tex"
elf64="ELF 64-bit LSB pie executable, x86-64"

shstr="Bourne"

if [ -d $themesdir ]
then
    echo "es ist noch ein ordner vorhanden, die alten aufgaben werden fortgesetzt"
else
    cp -r $themesdirorig $themesdir

    if [ -d "$vhdldir" ]
    then
        mv "$vhdldir" "$vhdldir$thedate"
    fi

    mkdir "$vhdldir"

    l=$(ls $themesdir)

    for s in $l
    do
        #echo "$themesdir/$s"
        #cat "$themesdir/$s"
        #echo " "
        f1=$(cat "$themesdir/$s")
        n1=$(wc -l "$themesdir/$s" | cut -d " " -f 1)
        i1=1
        #echo $n1
        while [ $i1 -lt $n1 ]
        do
            s1=$(cat "$themesdir/$s" | head -n "$i1" | tail -n "1")
            t1=($(echo $s1 | sed 's/\([^,]*\),.*,.*/\1/g'))
            t2=($(echo $s1 | sed 's/[^,]*,\([^,]*\),.*/\1/g'))
            t3=($(echo $s1 | sed 's/[^,]*,[^,]*,\"\(.*\)\"/\1/g'  | sed 's/ /_/g'))
            echo "$t1" "$t2" "$t3"
            x1=$(file "$t2" | sed 's/.*\(ELF 64-bit\).*/\1/g')
            if [ "$x1" == "ELF 64-bit" ]
            then
                $t2 >> "$vhdldir/$t1$fileending"
                x1=""
            else
                x1=$(file "$t2" | sed 's/.*\(Bourne\).*/\1/')
                echo "$x1"
                if [ "$x1" == "Bourne" ]
                then
                    /bin/bash "$t2" >> "$vhdldir/$t1$fileending"
                fi
            fi
            i1=$(($i1+1))
        done
    done
fi

thememenu="n"
while [ "$thememenue" != "z" ]
do
    l=$(ls $themesdir)
    j=0
    M=()
    echo "waehle zwischen themen"
    for s in $l
    do
        echo "Press: [$j]: $s"
        j=$(($j+1))
        M+=($s)
    done
    read themekey
    themekey=$(($themekey % $j))
    n=$(wc -l "$themesdir/${M[$themekey]}" | cut -d " " -f 1)
    i=1
    B1=()
    B2=()
    B3=()

    exrsmenu="n"
    while [ "$exrsmenu" != "z" ]
    do
        echo "waehle zwischen aufgaben"
        while [ $i -lt $n ]
        do
            row=$(cat "$themesdir/${M[$themekey]}" | head -n $i | tail -n 1)
            B1+=($(echo $row | sed 's/\([^,]*\),.*,.*/\1/g'))
            B2+=($(echo $row | sed 's/[^,]*,\([^,]*\),.*/\1/g'))
            B3+=($(echo $row | sed 's/[^,]*,[^,]*,\"\(.*\)\"/\1/g'  | sed 's/ /_/g'))
            echo "Press: [$i]: ${B3[$(($i-1))]}"
            i=$(($i+1))
        done
        read exrskey
        exrskey=$((($exrskey-1) % $j))

        echo "beNenne die zusaetzlichen dateien: ${B2[$exrskey]}"
        #echo "waehle folgende option: e, erledigt, z, oberes menue, u unerledigt"

        #read exrsstr
        #echo $exrsstr
        #while [[ "$exrsstr" != "z" && "$exrsstr" != "e" && "$exrsstr" != "u" ]]
        #do
        #    read exrsstr
        #    echo "$exrsstr"
        #done

        #if [ "$exrsstr" == "e" ]
        #then
            echo "geben sie einen text ein"
            read str
            echo "$str" >> "$vhdldir/${B1[$exrskey]}$fileending"
            read str
            #echo "erledigt" >> "$vhdldir/${B1[$exrskey]}$fileending"
            i=1
            while [ $i -lt $n ]
            do
                row=$(cat "$themesdir/${M[$themekey]}" | head -n $i | tail -n 1)
                B1+=($(echo $row | sed 's/\([^,]*\),.*,.*/\1/g'))
                B2+=($(echo $row | sed 's/[^,]*,\([^,]*\),.*/\1/g'))
                B3+=($(echo $row | sed 's/[^,]*,[^,]*,\"\(.*\)\"/\1/g'  | sed 's/ /_/g'))
                if [ $(($i-1)) -ne $((exrskey)) ]
                then
                    echo "${B1[$i-1]},${B2[$i-1]},${B3[$i-1]}" >> "$themesdir/${M[$themekey]}.tmp"
                fi
                i=$(($i+1))
            done
            cp "$themesdir/${M[$themekey]}.tmp" "$themesdir/${M[$themekey]}"
            #exrsmenu="z"
        #elif [ "$exrsstr" == "u" ]
        #then
        #    echo "endgueltig unerledigt" >> "$vhdldir/${B1[$exrskey]}$fileending"
        #    i=1
        #    while [ $i -lt $n ]
        #    do
        #        row=$(cat "$themesdir/${M[$themekey]}" | head -n $i | tail -n 1)
        #        B1+=($(echo $row | sed 's/\([^,]*\),.*,.*/\1/g'))
        #        B2+=($(echo $row | sed 's/[^,]*,\([^,]*\),.*/\1/g'))
        #        B3+=($(echo $row | sed 's/[^,]*,[^,]*,\"\(.*\)\"/\1/g'  | sed 's/ /_/g'))
        #        if [ $(($i-1)) -ne $((exrskey)) ]
        #        then
        #            echo "${B1[$i-1]},${B2[$i-1]},${B3[$i-1]}" >> "$themesdir/${M[$themekey]}.tmp"
        #        fi
        #        i=$(($i+1))
        #    done
        #    cp "$themesdir/${M[$themekey]}.tmp" "$themesdir/${M[$themekey]}"
        #    exrsmenu="z"
        #else
        #    exrsmenu="z"
        #fi
        # aufgabe unerledigt - nicht rueckgaengig zu machen
        # aufgabe erledigt - nicht rueckgaengig zu machen
        # zurueck ins obere menue
    done
    #read thememenue
    #while [[ "$thememenue" != "u" && "$thememenue" != "e" ]]
    #do
    #    read exrsstr
    #done
    #if [ "$thememenue" == "u" ]
    #then
    #    exit
    #else
    #    rm -r "$themesdir"
    #fi
done

        # zurueck ins obere menue
        # aufgaben unterbrechen
        # aufgaben als erledigt betrachtens

es sind noch ein paar kleine fehler drin, ich mache jetzt so aufgaben, i586 mmx, i586 cpuid, komplexes schaltwerk

graphikkarte, bis cuda

no display adapter, monochrome display adapter, printer adapter, color graphics adapter, enhanced graphics adapter, professional graphics adapter.

adapter heisst: 1:1 graphik , wie von cpu gesendet -> so auf bildschirm controller intelligenter

fuehrt zu woodo 3d graphics -> bedeutet, cpu auf der graphikkarte 3d

dann kommt spaeter cuda, nvidia - befehssatz

...

das heisst, dma, arbeitsspeicher, eigene cpu und befehle

compositoring z.B.

rgb, alpha channal

bei spielen uebereinander legen, transperency

spiel berechnet eckpunkte von objekten, liefert eckpunkte in RAM DMA addresse

graphikkarte nimmt von DMA Addresse aus allgemeine RAM

und CPU nvidia graphikkarte rechnet selber aus, von eckpunkten von objekt

compositoring: uebereinander antialising ... linie - funktionsplotter - mit niedriger bei schraeg fuellen ...

das ist befehlssatz von graphikkarte, objektpunkte senden .. graphikkarte cpu befehlssatz rechnet aus

anderer befehlssatz wie intel i586 ... cuda ...

dann ibm pc

f27b
oder so

das ist bei POST Chamber mode, Post LOOP

Equip Flag

PTR * EQUIP_FLAG
das ist slide switch oder rocker switch, und bit 1 option 1
0b0000 0001
AND und wenn das gegeben ist, dann ruecksprung zu
f27B
...
sonst 301 post diskette test, 601 keyboard test

...

jetzt mmx und cpuid in einem.

;; (C) David Vajda
;; i586/AMD64 CPUID MMX in One
;; 2025-04-21
    global _start
    section .data
        op1mmx:     db     "aaaa", "aaaa", 10, 13
        op2mmx:     db     0, 1, 2, 3, 4, 5, 6, 7
        cpuidstr:   db     "0000", "0000", "0000", 10, 13
    section .text
    _start:

    movq xmm1, [op1mmx]
    movq xmm2, [op2mmx]
    paddb xmm1, xmm2
    movq [op1mmx], xmm1

    mov ecx, op1mmx
    mov edx, 0x0a
    mov ebx, 0x01
    mov eax, 0x04
    int 0x80

    paddw xmm1, xmm2
    movq [op1mmx], xmm1

    mov ecx, op1mmx
    mov edx, 0x0a
    mov ebx, 0x01
    mov eax, 0x04
    int 0x80

    mov eax, 0x00
    cpuid
    mov [cpuidstr+0], ebx
    mov [cpuidstr+4], edx
    mov [cpuidstr+8], ecx
    mov ecx, cpuidstr
    mov edx, 14
    mov ebx, 0x01
    mov eax, 0x04
    int 0x80

    mov eax, 0x01
    mov ebx, 0x00
    int 0x80

david@work:~$ nasm -f elf32 i586mmxcpuid.asm
david@work:~$ ld -m elf_i386 i586mmxcpuid.o -o i586mmxcpuid
david@work:~$ ./i586mmxcpuid
abcdefgh
acegikmo
david@work:~$

;; perfekt!

david@work:~$ nasm -f elf32 i586mmxcpuid.asm
david@work:~$ ld -m elf_i386 i586mmxcpuid.o -o i586mmxcpuid
david@work:~$ ./i586mmxcpuid
abcdefgh
acegikmo
GenuineIntel
david@work:~$

# dieser tausch von elementen im array tut scheinbar nicht.
# obwohl geht auch nicht, der fehler ist woanders
# das tut schon mal
# so geht es auch nicht
# (C) David Vajda
# 2025-04-21
# Python 3 - first uebung

a=5
b=6
a+b
print(a+b)
c=a+b
print(c)

a=[1,2,3,4,5,6,7,'e','f','g']
for s in a:
    print(s)
# das tut schon mal

i = 1
x = 0
while i <= 10:
    x = x + i
    i = i + 1
    print(x)

A=["Hallo", "Welt", "sagt", "irgendwer", "dessen", "name", "mir", "aktuell", "nicht", "bekannt", "ist"]
i = 0
while i < len (A):
    print (A[i])
    i = i + 1

print (len(A))

i = 0
while i < len (A):
    j = i + 1
    while j < len (A):
        if A [i] > A [j]:
            tmp = A [i]
            A [i] = A [j]
            A [j] = tmp

            # Hier steht es
            # https://www.python-forum.de/viewtopic.php?t=1378
            # A [i], A [j] = A [j], A [i]
        j = j + 1
    i = i + 1
i = 0
while i < len (A):
    print (A[i])
    i = i + 1

i = 0
while i < len (A):
    j = i + 1
    x = i
    while j < len (A):
        if A [x] > A [j]:
            x = j
            # tmp = A [i]
            # A [i] = A [j]
            # A [j] = tmp

            # Hier steht es
            # https://www.python-forum.de/viewtopic.php?t=1378
            # A [i], A [j] = A [j], A [i]
        j = j + 1
    tmp = A [x]
    A [x] = A [i]
    A [i] = tmp
    i = i + 1
i = 0
while i < len (A):
    print (A[i])
    i = i + 1

print ("no idea!")

print ("faculty")

n = 1
nf=1
while (n < 10):
    nf = nf * n
    n = n + 1

print (nf)

n = 1
nf=1
while (n <= 4):
    nf = nf * n
    n = n + 1

print (nf)

n = 1
nf=1
while (n <= 10):
    nf = nf * n
    print (nf)
    n = n + 1

print ("i don't know what that is")
n = 1
nf = 1
while (n <= 256):
    nf = nf * n
    print (nf)
    n = n * 2

n = 1
nf = 0
while (n <= 256):
    nf = nf + n
    print (n, nf)
    print ("...")
    print ("...")
    n = n * 2

# ach doch, das hat sortiert aber die ersten beiden elemente wurden ausgelassen

Hallo
Welt
sagt
irgendwer
dessen
name
mir
aktuell
nicht
bekannt
ist
11
Hallo
Welt
aktuell
bekannt
dessen
irgendwer
ist
mir
name
nicht
sagt



aktuell
bekannt
dessen
irgendwer
ist
mir
name
nicht
sagt

# that's nice

# ich bin fertig lasse sie in ruhe

1 1
...
...
2 3
...
...
4 7
...
...
8 15
...
...
16 31
...
...
32 63
...
...
64 127
...
...
128 255
...
...
256 511
...
...

#!/bin/bash

# (C) David Vajda
# make VHDL www
# 2025-04-18

# ...

vhdld="vhdl"
vhdldir="./$vhdld"
imagesnamesCsvName="./vhdl/config/imagesnames.csv"
thedate=$(date | sed 's/[ :\.]*//g')
bakdir="./bak"
jpegdir="./vhdl/jpeg"
jpegmoddir="./vhdl/jpegmod"
oldtexfile="./old.tex"
tmptexfile="tmp$thedate.tex"
oldtexbakfile="./old$thedate.tex.bak"
newtexfile="./uebungen07.tex"
newtexdir="./uebungen07"
bottomtexfile="./bottom.tex"
vhdlsafed="vhdl$thedate"
vhdlsafedir="./vhdl$thedate"
jpegsafedir="./vhdl$thedate/jpeg"
jpegsafemoddir="./vhdl$thedate/jpegmod"
vhdluserdir="/home/david/Dokumente/Dokumente-16-2024-08-16/informatikUmathematik/vhdl$thedate"

if [ -e $oldtexfile ]
then
    echo "last tex file exists"
else
    echo "last tex file doesn't exists"
    echo "exit"
    exit
fi

cp $oldtexfile $oldtexbakfile
cp $oldtexfile $tmptexfile

if [ -d vhdl ]
then
    l=$(ls $vhdldir)
    if [ -n "$l" ]
    then
        #cp -r $vhdldir "$vhdldir$thedate"
        #mkdir vhdl
        if [ -d $bakdir ]
        then
            echo "found backup directory"
        else
            echo "no backup directory found - creating one"
            mkdir bak
        fi
        if [[ -d $jpegdir && -e $imagesnamesCsvName ]]
        then
            if [ -d $jpegmoddir ]
            then
                rm -r $jpegmoddir
            fi
            mkdir $jpegmoddir
            l2=$(ls $jpegdir)
            for s2 in $l2
            do
                heicnam=$(echo "$jpegdir/$s2" | sed 's/.*\.HEIC/HEIC/')
                if [ "$heicnam" == "HEIC" ]
                then
                    s3="$s2.jpeg"
                    heif-convert -quality 50 $jpegdir/$s2 $jpegmoddir/$s3
                else
                    s3="$s2"
                    cp $jpegdir/$s2 $jpegmoddir/$s3
                fi
                fjpegsize=$(wc -c < "$jpegmoddir/$s3")
                if [ $fjpegsize -ge 4000000 ]
                then
                    convert -resize 12% "$jpegmoddir/$s3" "$jpegmoddir/$s3"
                elif [ $fjpegsize -ge 2000000 ]
                then
                    convert -resize 25% "$jpegmoddir/$s3" "$jpegmoddir/$s3"
                elif [ $fjpegsize -ge 1000000 ]
                then
                    convert -resize 50% "$jpegmoddir/$s3" "$jpegmoddir/$s3"
                fi
            done
            l4=$(cat $imagesnamesCsvName)
            A1=()
            A2=()
            for s4 in $l4
            do
                s5=$(echo "$s4" | sed 's/.*,\(.*\)/\1/')
                s6=$(echo "$s4" | sed 's/\(.*\),.*/\1/')
                A1+=($s5)
                A2+=($s6)
            done
        elif [[ -d $jpegdir && ! -e $imagesnamesCsvName ]]
        then
            echo "images and list not consistent"
        elif [[ ! -d $jpegdir && -e $imagesnamesCsvName ]]
        then
            echo "images and list not consistent"
        fi
        cp old.tex $bakdir/old$thedate.bak.tex
        touch "$tmptexfile"
        echo "\\section{$(date)}" >> "$tmptexfile"
        for s in $l
        do
            if [ ! -d "$vhdldir/$s" ]
            then
                s9=$(echo "$s" | tr "." " - ")
                echo "\\subsection{$(date) - $s9}" >> "$tmptexfile"
                #echo "\\begin{lstlisting}" >> "$tmptexfile"
                echo " " >> "$tmptexfile"
                cat "$vhdldir/$s"  >> "$tmptexfile"
                #echo "\\end{lstlisting}"  >> "$tmptexfile"
                i=0
                s8=$(echo $s | sed 's/\(.*\)\.[A-Za-z]*/\1/g')
                echo "$s8"
                for s7 in ${A1[@]}
                do
                    if [ "$s7" == "$s8" ]
                    then
                        echo ""  >> "$tmptexfile"
                        echo "\\includegraphics [width=\\textwidth]{$jpegsafemoddir/${A2[$i]}}"  >> "$tmptexfile"
                        echo ""  >> "$tmptexfile"
                    fi
                    i=$(($i+1))
                done
            fi
        done
    else
        echo "das vhdl verzeichnis ist leer"
    fi
    cp $tmptexfile $oldtexfile
    cat $tmptexfile $bottomtexfile > $newtexfile
    cp -r "$vhdldir" "$vhdluserdir"
    mv "$vhdld" "$vhdlsafedir"
    latex2html "$newtexfile"
    # sshpass -f "/home/david/Dokumente/password20240802/wwwdavidpasswd" ssh root@www1 "rm -r /var/www/html/html/$newtexdir"
    #sshpass -f "/home/david/Dokumente/password20240802/wwwdavidpasswd" scp -r $newtexdir david@www1:/home/david/
    #sshpass -f "/home/david/Dokumente/password20240802/wwwrootpasswd" ssh root@www1 "cp -r /home/david/$newtexdir /var/www/html/html/"
    #sshpass -f "/home/david/Dokumente/password20240802/wwwrootpasswd" ssh root@www1 "chown -R www-data:www-data /var/www/html/html/$newtexdir"
else
    date
    echo "es gibt kein neues vhdl verzeichnis"
    mkdir vhdl
fi

if [ -e $imagesnamesCsvName ]
then
    echo "found table for images names"
else
    touch imagesnames.csv
    echo "created table for images names"
fi

# wahrscheinlich ist vielleicht ein fehler drin.


Mo 21. Apr 20:50:32 CEST 2025
Zustand Folge-Zustand fuer Ausgang
 x=0 x=1
1 2 7 1
2 7 1 1
3 1 6 0
4 8 3 1
5 3 1 1
6 7 7 0
7 1 2 1
8 5 5 1


Zustand Folge-Zustand fuer Ausgang
 x=0 x=1
1 2 7 1
2 7 1 1
3 1 6 0
4 8 3 1
5 3 1 1
6 7 7 0
7 1 2 1
8 5 5 1

Zustand Folge-Zustand fuer Ausgang
 x=0 x=1
1 2 7 1
2 7 1 1
4 8 3 1
5 3 1 1
7 1 2 1
8 5 5 1

Zustand Folge-Zustand fuer Ausgang
 x=0 x=1
3 1 6 0
6 7 7 0

Zustand Folge-Zustand fuer Ausgang
 x=0 x=1
1 2 7 1
2 7 1 1
4 8 3 1
5 3 1 1
7 1 2 1
8 5 5 1

(1,2) (2,7) (7,1)
(1,4) (2,8) (7,3)
(1,5) (2,3) (7,1)
(1,7) (2,1) (7,2)
(1,8) (2,5) (7,5)
(2,4) (7,8) (1,3)
(2,5) (7,3) (1,1)
(2,7) (7,1) (1,2)
(2,8) (7,5) (1,5)
(4,5) (8,3) (3,1)
(4,7) (8,1) (3,2)
(4,8) (8,5) (3,5)
(5,7) (3,1) (1,2)
(5,8) (3,5) (1,5)
(7,8) (1,5) (2,5)

(1,2) (2,7) (1,7)
(1,4) (2,8) (3,7)
(1,5) (2,3) (1,7)
(1,7) (1,2) (3,7)
(1,8) (2,5) (5,7)
(2,4) (7,8) (1,3)
(2,5) (3,7) (1,1)
(2,7) (1,7) (1,2)
(2,8) (5,7) (1,5)
(4,5) (3,8) (2,3)
(4,7) (1,8) (2,3)
(4,8) (5,8) (3,5)
(5,7) (1,3) (1,2)
(5,8) (3,5) (1,5)
(7,8) (1,5) (2,5)

(1,2) (2,7) (1,7)
(1,4) (2,8) (3,7)
(1,5) (2,3) (1,7)
(1,7) (1,2) (3,7)
(1,8) (2,5) (5,7)
(2,4) (7,8) (1,3)
(2,5) (3,7)
(2,7) (1,7) (1,2)
(2,8) (5,7) (1,5)
(4,5) (3,8) (2,3)
(4,7) (1,8) (2,3)
(4,8) (5,8) (3,5)
(5,7) (1,3) (1,2)
(5,8) (3,5) (1,5)
(7,8) (1,5) (2,5)

(1,2) (2,7) (1,7)
--(1,4) (2,8) --(3,7)
--(1,5) --(2,3) (1,7)
--(1,7) (1,2) --(3,7)
(1,8) (2,5) (5,7)
--(2,4) (7,8) --(1,3)
--(2,5) --(3,7)
--(2,7) --(1,7) (1,2)
--(2,8) (5,7) --(1,5)
--(4,5) --(3,8) (2,3)
--(4,7) (1,8) --(2,3)
--(4,8) (5,8) --(3,5)
--(5,7) --(1,3) (1,2)
--(5,8) --(3,5) (1,5)
--(7,8) --(1,5) (2,5)

(1,2) (2,7) (1,7)
(1,8) (2,5) (5,7)
keine redudantenßustaende

so, jetzt kommt die naechste aufgabe, wie in meiner sammlung. https://www.dvajda.de/html/uebungen07/index.html

...

gut das habe ich jetzt. und tue das geld in die bank, vorher aufraeumen, danach feile im am rest, aufgaben skript ... und dann gucke ich in das pdf ueber python 3 bitcoin ...

so weit hat das funktioniert und kommt als html auf die homepage...

(C) David Vajda
Sat Apr 19 17:48:30 2025
3 Network - TTL - Disjunktive Normalform

 x2 x1 x0 y
 0 0 0 0 0
 1 0 0 1 1
 2 0 1 0 1
 3 0 1 1 1
 4 1 0 0 0
 5 1 0 1 0
 6 1 1 0 0
 7 1 1 1 1

 x2 x1 x0 y
 1 0 0 1 1
 2 0 1 0 1
 3 0 1 1 1
 7 1 1 1 1

 x2 x1 x0 y
Gruppe 1:
 1 0 0 1 1
 2 0 1 0 1
Gruppe 2:
 3 0 1 1 1
Gruppe 3:
 7 1 1 1 1

1:3 0 - 1
2:3 0 1 -
3:7 - 1 1

2:3 0 1 -
1:3 0 - 1
3:7 - 1 1

 1 2 3 7
2:3 + +
1:3 + +
3:7 + +

 1 2 3 7
2:3 + + p
1:3 + + p
3:7 + + p

2:3 0 1 -
1:3 0 - 1
3:7 - 1 1

 y <= (not x2 and x1) or
 (not x2 and x0) or
 (x1 and x0);

library ieee;
use ieee.std_logic_1164.all;

entity quine20250419 is
port (
 x2, x1, x0: in std_logic;
 y: out std_logic
);
end;

architecture behaviour of quine20250419 is
begin
 y <= (not x2 and x1) or
 (not x2 and x0) or
 (x1 and x0);
end;

library ieee;
use ieee.std_logic_1164.all;

entity quine20250419testbench is
port (
 y: out std_logic
);
end;

architecture behaviour of quine20250419testbench is
 component quine20250419
 port (
 x2, x1, x0: in std_logic;
 y: out std_logic
 );
 end component;
 signal x2, x1, x0: std_logic;
begin
 q: quine20250419 PORT MAP (x2=>x2, x1=>x1, x0=>x0, y=>y);

Also die Schaltung tut sogar von der Wahrheit Tabelle her. Passt die 100 prozent stimmt also von der Logik her dafür, dass es sowieso geht

 (C) David Vajda
Sat Apr 19 17:48:30 2025
3 Network - TTL - Disjunktive Normalform

 x2 x1 x0 y
 0 0 0 0 0
 1 0 0 1 1
 2 0 1 0 1
 3 0 1 1 1
 4 1 0 0 0
 5 1 0 1 0
 6 1 1 0 0
 7 1 1 1 1

 x2 x1 x0 y
 1 0 0 1 1
 2 0 1 0 1
 3 0 1 1 1
 7 1 1 1 1

 x2 x1 x0 y
Gruppe 1:
 1 0 0 1 1
 2 0 1 0 1
Gruppe 2:
 3 0 1 1 1
Gruppe 3:
 7 1 1 1 1

1:3 0 - 1
2:3 0 1 -
3:7 - 1 1

2:3 0 1 -
1:3 0 - 1
3:7 - 1 1

 1 2 3 7
2:3 + +
1:3 + +
3:7 + +

 1 2 3 7
2:3 + + p
1:3 + + p
3:7 + + p

2:3 0 1 -
1:3 0 - 1
3:7 - 1 1

 y <= (not x2 and x1) or
 (not x2 and x0) or
 (x1 and x0);

library ieee;
use ieee.std_logic_1164.all;

entity quine20250419 is
port (
 x2, x1, x0: in std_logic;
 y: out std_logic
);
end;

architecture behaviour of quine20250419 is
begin
 y <= (not x2 and x1) or
 (not x2 and x0) or
 (x1 and x0);
end;

library ieee;
use ieee.std_logic_1164.all;

entity quine20250419testbench is
port (
 y: out std_logic
);
end;

architecture behaviour of quine20250419testbench is
 component quine20250419
 port (
 x2, x1, x0: in std_logic;
 y: out std_logic
 );
 end component;
 signal x2, x1, x0: std_logic;
begin
 q: quine20250419 PORT MAP (x2=>x2, x1=>x1, x0=>x0, y=>y);

Ach die LED tut aus unendlich das Kabel war wohl am Arsch. Ich mach ein Foto und probier's noch mal neu. Da war wohl ein Kabel am Arsch

Also ich muss jetzt erst mal folgendes. Ich hab jetzt erst mal von der Mutter zehn Euro gekriegt, das zahle ich gleich ein. Aber vorher muss ich die Schaltung mit den LED machen bis die Schaltung mit den LED. Verzeihen Sie die Rede gestern egal bis die LED nicht tut, bin ich nicht zufrieden. Verzeihen Sie das von gestern ist egal. Bis die LED nicht tut, bin ich nicht zufrieden so jetzt zu der Währung ich hatte ihn in anime Coin investiert. oh na das war erst ein ganz guter aufsteigende Sache. Ich vermute trotzdem, dass man schon vorher sehen konnte, dass es wieder Berg abgeht. Ich hab jetzt ne andere Währung investiert. In Zukunft werde ich darüber nicht mehr reden. Ich kann mir vorstellen, wenn einer seine Screenshots rein tut und sagt sozusagen ich hab's darin investiert. Das hat natürlich soziale Auswirkung. So seltsam soziale Auswirkungen finde diese Schüchternheit was soziale Auswirkungen betrifft, ich finde es gehört dazu denke ich mal. Ich finde das im Allgemeinen Scheiße, wenn man sich um jeden komische Aussage auf der Straße kümmert und dann dieses Pingpong Spiel macht. Das finde ich tatsächlich doof als ich dagegen gegenseitig mit Ausdrücken zu bedenken. ich glaub, da kommen sie nicht weit und ich glaub trotzdem ja also wenn sie ein Screenshot von Anime coin ins Netz setzen dann kann die sozial Auswirkung haben, die nur zur fühlen sich entweder animiert oder sozusagen verunsichert nur dann komm ich glaub dass ich das so nicht akzeptieren würde da ich entschuldige mich dann bei der Währung das kann dann ja auch wieder Auswirkungen haben dafür hat sie mal kurz ein bisschen Talfahrt gehabt das sagt ja Nix. Ich entschuldige mich dann erst mal und geh woanders hin und sage das und ich vielleicht bleibt sie dafür, akzeptierte Währung. Ich denk nämlich irgendwann werden sich einige etablieren und im Laufe der Zeit und andere werden dafür verschwinden und einige kommen eben immer wieder oder was weiß ich entschuldigt man sich. Ich finde es mit dem sozialen also dass die Sozialausführung hat es natürlich, wenn die Währung keine soziale Auswirkung hat erst mal es gibt ja eine immer stabile Währung sozusagen oder könnte den Versuch geben, das haben wir auch schon Leute gemacht das Gegenteil dann wär man mit allen sozusagen Kryptowährung ja am falschen Platz. Der Handel damit funktioniert ja nur, weil die nicht ständig stabil sind. Man könnte ja probieren ne Währung zu erfinden die 100 prozent stabil ist zusammen Menschen auch schon gemacht es geht in Richtung Kommunismus. Dann scheinen wieder einige Leute natürlich Kommunismus. Das finde ich jetzt nicht so toll. Ich sag mal so natürlich jeder soziale Einfluss hat Auswirkungen auf ne Währung und wenn das nicht so wäre, dann müsste man von einer stabilen Währung ausgehen und natürlich besitzt man ne Währung nicht allein nicht einer besitzen auf dem Geld und alle anderen haben nichts. Das ist mal das erste, was ich daraus schließe mit meinem geringfügigen Wissen. Ich sage geringfügigen Wissen, wenn ein einziger, alles Geld einer Währung hat mit einer schlicht und ergreifend nichts mehr anfangen. So, das hat so oder so soziale Ausführung aber ich denk bis zum gewissen Grad sind die erwünscht also weiß ich glaube nicht gut ist, wenn jetzt alle Leute ständig das Zeit zu meinen, jetzt alle sozusagen da beitreten zu müssen und tauschen untereinander sozusagen ihre Gedanken aus. Es ist ja was anderes, wenn man natürlich ständig Erdrutsche auslöst. Das ist keine gute Idee. Würde ja sozusagen zu Verunsicherung führen aber wenn der einzelne mal was sagt, dann hat es vielleicht egal wer oder was sie sind eine gewisse Auswirkung, weil sich die Leute imponiert fühlen oder weil sie sich sozusagen verunsichert fühlen aber ich finde es ist ja normal das sind ja alles Einflüsse auf ne Währung verstehen Sie? Es gehört ja alles zur Währung dazu zur Währung gehört eben dieser sozusagen sozialpsychologische Einfluss sonst wären die Währung ja ständig stabil und das sind ja alle Teil der Schwankungen und deswegen finde ich das normal wenn es auch mal runtergeht und wenn man mal was sagt und vielleicht muss man das ja nicht dauernd machen damit sozusagen, dass sozusagen nicht an dieser Hinsicht irgendwie zum Dauerthema wird. Aber wenn es bei einer Währung passiert ich glaub nicht dass da ernsthaft was los ist. Sonst Punkt Nummer eins.

Punkt Nummer zwei ist so mal das erste was ich erkannt haben will das erste was ich erkannt habe will. Ich hab jetzt die Währung gewechselt und ich werde in Zukunft nicht mehr preisgegeben. Natürlich und dann kommt der nächste Teil dann kommt der nächste Teil

Also ich will jetzt das mit den LED machen. Das ist mir das wichtigste und dass die Aufgaben und so normal sind. Ich finde es aber interessant. Ich will ihn gleich sagen, dass es dass ich das mit dem Bitcoin also das werde ich wahrscheinlich genau studieren langfristig aber soweit bin ich gerade nichts das muss ich einfach sagen. Zum Beispiel hab ich ja den Mathekurs belegt Mit Algorithmus. Algorithmus Mathematik und na, da wurde uns genau Python ans Herz gelegt. Python drei und ja, ich kann inzwischen ganz gut mit P3 umgehen und na ich denk halt, dass die Mathematiker benutzen Python drive zu programmieren. Ich hab bisher mehr so Maschinen, halt Programmierung, C und Pascal und so Benutzung PHP und Java und so aber ich bin auch sehr gut. Ich konnte damit Grafen und so weiter lösen und so Sachen finde ich ganz gut. Oh na ja das ist ne sehr komplexe Sprache. Es gibt ja ja auch im Internet laute Leute die es immer benutzen. Die hat ja viele Bibliotheken und die das sozusagen immer weiter benutzen. Ich lern das dann mit dem Mathekurs auch genauer und an der Stelle möcht ich dann, was das Bitcoin wissen bei mir betrifft ein bisschen nachbessern langfristig, aber jetzt gerade noch nicht oder mittelfristig zum Beispiel also was mein Ziel ist letztenendes

Dieses bitpanda ist ja letztenendes ne Börse, kann man sagen und man kann lauter Swaps zwischen Währung machen teilweise auch nicht nicht Kryptowährung und jedenfalls was mein Ziel ist, es genauer zu studieren und dazu gehören einerseits also ich hab ein Buch zum Beispiel in PDF hab ich im Internet gefunden und das ist ein komplettes Buch vom Inder geschrieben und da steht der Aufbau von der Kryptowährung, also in Python drei also nicht nur so sozusagen als wie soll ich sagen gedachte Sache es gibt ja lauter Begriffe die die einem so hinterher geschmissen werden. Die sind sicher interessant aber es steht ne also wenn man das macht was da steht in beiden drei programmiert, dann hat man quasi in die Kryptowährung, die natürlich nicht zur Ausführung kommt oder seitdem man kriegt es irgendwie hinter hat man ne Währung erschaffen, muss er hier zwei Sachen schreiben unterscheiden man hat ja einerseits ein Quelltext also ne Software und die günstige ja geschrieben haben genauso wie wenn sie Facebook geschrieben haben als Programm? Das ist ja letztens auch ne Software weil es ist ne dynamische Seite sie haben die geschrieben und die ist letztenendes ganz klein. Also wenn sie den Linux Girl nehmen, dann ist der 5 MB und ich kann mir vorstellen wenn sie Facebook Seite schreiben dann ist die von der Größe her sagen wir 2 MB oder 5 MB oder ich hab ein Forum das ist 20 MB oder sowas und erst durch die das sind eigentlich nur Benutzer da und genauso geht's eigentlich mit einer Kryptowährung. Auch sie schreiben das als Software und dann haben sie Kryptowährung als Software, die quasi eigentlich funktionieren würde aber so nicht zum Einsatz kommen, so auch interessieren, was genau da geschrieben steht

Das würde ich auch gern so machen und das ist natürlich der eine Teil dieser Software und das muss relativ einfach sein und es verwendet auch in Python 3 kann man ja sozusagen alle alle Dinge verwenden also alle Bestandteile, die man sonst auch hat. Das gibt ja sehr große Bibliothek und also von SSL hat man ja soweit erst mal nicht. Kann man das alles soweit verwenden und will ich dann auch irgendwie lernen und dann gibt es den zweiten Teil mit dem Marktwirtschaft. Was ich jetzt auch ganz interessant finde zum Beispiel ich hab ja die Algorithmus Mathematik und ich hab mir das Buch mit der Wahrscheinlichkeitsrechnung wieder bestellt von dem beruflichen Gymnasium. Das ist ne relativ einfache Sache und ich denke auch Statistik ist ne einfache Sache und ist auch ne einfache Sache. Wenn man das auf Cluster bezieht ist es nicht so kompliziert und ja das möcht ich halt irgendwie so für mich lernen und ich muss auch noch ein bisschen mit Marktwirtschaft und so Ökonomie nacharbeiten aber ich bin ja dabei. Also ich lerne ja den Marx eben deswegen nicht wegen kommunistischen Prinzipien sondern einfach, weil sagen wir mal weiß halt was über Ökonomie lernen möchte und ja wenn sie das so zusammenfassen, dann haben sie halt jetzt auf der einen Seite mit beiden drei denke ich kann ich gut umgehen soweit würde das für das Buch reichen da gibt's natürlich sehr. Wie soll ich mal sagen es gibt allein für Python drei sehr starke sehr starke Spezialisten dies auch pflegen aber trotzdem ich denke also Python kann man ganz gut benutzen. Ich hab's auch schon gemacht. im nächsten Teil sollten Sie halt Ökonomie im Allgemeinen verstehen halt allgemeine Begriffe deswegen lese ich den Markt da bin ich eigentlich ganz zufrieden mit mir weil ich denk manchmal kriegt man Ökonomie hinterher geschmissen und irgendwelche Grundbegriffe fehlen. Es gibt zum Beispiel an der Fernuni Hagen gibt's den Kurs, der beschreibt also das geht um das Geld selber. Also der beschreibt den Charakter des Geldes also wie gesagt es gibt viele ökonomische Werke und die vom Heiden die Grundbegriffe und ich finde irgendwie hab ich den Eindruck und ich finde die sind bei Martz gar nicht erspart worden, so dass es der eine Teil und dann kommt der dritte Teil. Das ist Rechnung und Statistik da bin ich ganz gut wie gesagt ganz gut in ihn dabei. Wie gesagt ich hab den Kurs Algorithmus Mathematik belegt und da geht's ja sozusagen auch in erster Linie bisschen um Wahrscheinlichkeitsrechnung fast wenig als bei uns am beruflichen Gymnasium und dann sind sie mathematisch auf dem guten Weg weil ich will von diesem sozusagen Raten weg, wenn ich jetzt diese ganzen Währung sage dann kann ich nur sagen ich rate mal ich nehme jetzt diese Währung oder ich nehme diese Währung ich kann mich nicht entscheiden was ist die richtige also ich ich hab keinen ernsthaften sozusagen objektiv objektiven Kriterien vorauszusagen, was als Nächstes sozusagen steigen wird und ich finde das aus meiner Hinsicht legitim. Es gibt ja immer wieder Leute die sagen du hast keine Ahnung oder so du kannst es ja nicht Voraussagen und ich denke das ist der erste Weg sich selber zu unterstellen keine Ahnung zu haben. Schauen Sie mal wenn sie in die Schule gehen sozusagen also sie haben diese Leute haben, auf ihr Alter bezogen sehr starke Einsicht, dass sie sozusagen Denken über sich haben. Aber gucken Sie mal, wenn ich jetzt lauter Währung sehe lauter Kryptowährung und ich muss raten soll ich die Kryptowährung nehmen oder die natürlich mit dem, was mir bitpanda vorschlägt dann bin ich ja sozusagen wie ein Kleinkind im Kindergarten. Das muss entscheiden soll ich jetzt diese Zahl nehmen oder soll ich diese Zahl nehmen und damit rate ich und erfüllt sozusagen keine Kriterien von von von irgendwelchen objektiven Voraussagen wie in der Wahrscheinlichkeitsrechnung und und in der Wahrscheinlichkeitsrechnung lerne ich sozusagen das Raten ein bisschen besser, sozusagen einzuteilen also dass ich nicht mehr blind rate und dass ich bessere Vorhersagen treffen kann. Und das ist Punkt Nummer eins. Aber wissen Sie, wenn man Kleinkind da hinsetzt und soll raten wenn sich ein Törchen öffnet, welches Törchen öffnet sich als Nächstes kann sein, kommt ein sehr kluger Mathematiker und kann das genau Voraussagen aber wenn ich das nicht gelernt habe, dann bin ich in diesem in dieser Hinsicht sozusagen blutiger Anfänger und ein Kleinkind und dann ist es sogar gut zu raten. Also Leute, die nie geraten haben, kann man sagen die können auch die Wahrscheinlichkeitsrechnung nicht, weil es ist ein bisschen absurd, erst mit der Wahrscheinlichkeitsrechnung anzufangen und vorher nicht gewusst zu haben, was raten ist deswegen denke ich, es ist ne gute Sache Unna also jedes Kleinkind muss erst mal geraten haben, bevor es später Wahrscheinlichkeitsrechnung lernt. Das ist halt eine Unterschied, denke ich, und der andere Unterschied ist

Also ich finde sie können immer nur auf dem Niveau argumentieren, auf dem sie sind. Das ist halt das Problem und selbst für andere Niveau gibt's viele stärkeres Niveau gibt's vielleicht immer noch andere Argumente. Sie können zum Beispiel mal 100.000 € vor 20 Jahren in Bitcoin gesteckt haben und haben jetzt sehr viel Geld. Gut, das ist eine Möglichkeit es gibt andere Möglichkeiten und es ist eigentlich mein Ziel ständig Durchzuführen, dass der Wert automatisch steigt. Nur also Kleinkinder werden auf jeden Fall raten und wenn sie das nicht tun, dann können Sie auch keine Wahrscheinlichkeitsrechnung lernen. Es gibt immer wieder Leute, die sagen ja warum. Warum würdest du das jetzt nicht wissen und setzen sich sozusagen zurück und sagen du musst es jetzt wissen ja gut ich glaub halt das ist ja eigenes Problem. Sie können es ja lernen wie sie wollen. Wenn sie das jetzt so sehen, dann können Sie sich ja irgendwie daran beteiligen. Das ist ja ihr Problem wie schnell sie was lernen. Es gibt auch genügend Computer Firmen die wissen den Teil nicht von der IT oder den anderen Teil nicht. Die müssen auch dazu lernen das müssen wir alle ständig und es ist normal und wenn sie das als Möglichkeit entdeckt haben, können Sie das ja sozusagen tun. Das ist halt Punkt Nummer eins.

Und ich denk damit fange ich auch an also jetzt da erst mal möcht ich grad was ganz anderes machen. Ich brauch ein bisschen Geld und zwar 20 € weil ich muss die nächste Rechnung bezahlen und ich hab bisher ungefähr 40 € oder 50 €. Ich hoffe ich kann das vermehren um einfach was zu bezahlen einfach durch reines Raten sozusagen und ja langfristig möchte ich wie gesagt was dazu lernen Python drei mit dem Buch das sieht interessant aus wie einfache Kryptowährung aussieht vom Programm Quelltext dann Wahrscheinlichkeitsrechnung besser lernen das ist teils Mathekurses und wie gesagt ökonomisch mich verbessern. Das ist halt eine Teil und dann der andere. Jetzt muss ich halt hier Trotzdem gucken dass alles gut funktioniert. Weil also bei mir artet es jetzt nicht so aus, dass ich jetzt mein ich muss ja jetzt schnell irgendwas tun wie gesagt ich hab Computersysteme eins und zwei geschrieben und bestanden und ich hab imperative Programmierung geschrieben und bestanden und dazu muss man sehr viel Geduld und Zeit haben, sowas zu lernen und darum geht's mir eigentlich sie brauchen Geduld und Zeit so ja deswegen will ich jetzt erst mit den LED machen und mein Zimmer aufräumen und wie gesagt die Sachen die ich mit den Aufgaben standardmäßig machen die Sachen die ich mit den Aufgaben standardmäßig mache. Das möcht ich muss ich jetzt langsam anfangen und jetzt muss ich erst mal das mit den LED angucken und so weiter und dann bringe ich die zehn Euro rein und dann mache ich das Übungsprogramm wie gesagt heute weiter und ich guck mir trotzdem mal das PDF an mit dem Python drei zu irgendeiner Kryptowährung. Ich weiß nicht wie der Inder heißt, aber ich hab das Buch auf jeden Fall. Das ist sicher gut. Und das eine Mathebuch, was ich schon hatte von der Oberstufe, das kommt noch keine Sorge.

-- (C) David Vajda
-- Sat Apr 19 17:48:30 2025
-- 3 Network - TTL - Disjunktive Normalform

library ieee;
use ieee.std_logic_1164.all;

entity quine20250419 is
port (
 x2, x1, x0: in std_logic;
 y: out std_logic
);
end;

architecture behaviour of quine20250419 is
begin
 y <= (not x2 and x1) or
 (not x2 and x0) or
 (x1 and x0);
end;

library ieee;
use ieee.std_logic_1164.all;

entity quine20250419testbench is
port (
 y: out std_logic
);
end;

architecture behaviour of quine20250419testbench is
 component quine20250419
 port (
 x2, x1, x0: in std_logic;
 y: out std_logic
 );
 end component;
 signal x2, x1, x0: std_logic;
begin
 q: quine20250419 PORT MAP (x2=>x2, x1=>x1, x0=>x0, y=>y);
 x0 <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns;

 x1 <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns;

 x2 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns;
end;

(C) David Vajda
Sat Apr 19 17:48:30 2025
3 Network - TTL - Disjunktive Normalform

 x2 x1 x0 y
 0 0 0 0 0
 1 0 0 1 1
 2 0 1 0 1
 3 0 1 1 1
 4 1 0 0 0
 5 1 0 1 0
 6 1 1 0 0
 7 1 1 1 1

 x2 x1 x0 y
 1 0 0 1 1
 2 0 1 0 1
 3 0 1 1 1
 7 1 1 1 1

 x2 x1 x0 y
Gruppe 1:
 1 0 0 1 1
 2 0 1 0 1
Gruppe 2:
 3 0 1 1 1
Gruppe 3:
 7 1 1 1 1

1:3 0 - 1
2:3 0 1 -
3:7 - 1 1

2:3 0 1 -
1:3 0 - 1
3:7 - 1 1

 1 2 3 7
2:3 + +
1:3 + +
3:7 + +

 1 2 3 7
2:3 + + p
1:3 + + p
3:7 + + p

2:3 0 1 -
1:3 0 - 1
3:7 - 1 1

 y <= (not x2 and x1) or
 (not x2 and x0) or
 (x1 and x0);

library ieee;
use ieee.std_logic_1164.all;

entity quine20250419 is
port (
 x2, x1, x0: in std_logic;
 y: out std_logic
);
end;

architecture behaviour of quine20250419 is
begin
 y <= (not x2 and x1) or
 (not x2 and x0) or
 (x1 and x0);
end;

library ieee;
use ieee.std_logic_1164.all;

entity quine20250419testbench is
port (
 y: out std_logic
);
end;

architecture behaviour of quine20250419testbench is
 component quine20250419
 port (
 x2, x1, x0: in std_logic;
 y: out std_logic
 );
 end component;
 signal x2, x1, x0: std_logic;
begin
 q: quine20250419 PORT MAP (x2=>x2, x1=>x1, x0=>x0, y=>y);

So, jetzt mache ich weiter die Schaltung jetzt mache ich weiter die Schaltung DNF 74xx und so weiter was ich halt immer mache damit fange ich jetzt einfach an am Computer und ich mach das auch mit echten Bauteilen dann

Gott sei Dank, große LED das ist na gut gut. Sie haben ja gesehen, wie man die Schaltung fotografiert. Die kleine LED kommt teilweise ganz gut raus, aber längst nicht so gut und auch der Schein übertrifft die anderen. Natürlich können man sagen die Großen sind noch heller oder wie auch immer ja aber ich behaupte mal, sie sind deutlich hier zu erkennen und ich glaub das auf dem Foto wichtiger umso besser

#!/bin/bash

# (C) David Vajda
# greplatex2html v0.1
# 2025-04-18

searchlst=$(cat "./searchdir.csv")

for q in $searchlst
do
    p=$(ls | grep "$q")
    for t in $p
    do
        if [ -d "$t" ]
        then
            if [[ -z "$1" ||  -z "$t" || -n "$2" ]]
            then
                echo "wrong number of parameters"
                exit
            else
                #echo "sucess"

                cd "$t"

                l=$(ls *.html)

                searchstring=$(echo "$1" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9@_\-\.]*//g')

                for s in $l
                do
                    exists=$(cat "$s" | tr '\n' ' ' | sed  's/.*<[ ]*BODY[ ]*>\(.*\)<[ ]*\/[ ]*BODY[ ]*>.*/\1/g' | sed 's/<[^>]*>/ /g' | tr '[:upper:]' '[:lower:]' |  sed 's/[^a-z0-9@_\-\.]*//g' | grep $searchstring)
                    if [ -n "$exists" ]
                    then
                        echo "https://www.dvajda.de/html/$1/$s"
                    fi
                done
                cd ..
            fi
        fi
    done
done

#!/bin/bash

# (C) David Vajda
# greplatex2html v0.1
# 2025-04-18

if [[ -z "$1" || -z "$2" || -n "$3" ]]
then
    echo "wrong number of parameters"
    exit
else
    #echo "sucess"

    cd "$1"

    l=$(ls *.html)

    searchstring=$(echo "$2" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9@_\-\.]*//g')

    for s in $l
    do
        exists=$(cat "$s" | tr '\n' ' ' | sed  's/.*<[ ]*BODY[ ]*>\(.*\)<[ ]*\/[ ]*BODY[ ]*>.*/\1/g' | sed 's/<[^>]*>/ /g' | tr '[:upper:]' '[:lower:]' |  sed 's/[^a-z0-9@_\-\.]*//g' | grep $searchstring)
        if [ -n "$exists" ]
        then
            echo "https://www.dvajda.de/html/$1/$s"
        fi
    done

    echo $searchstring

fi

searchstring=$(echo "$2" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9@_\-]*//g')

cat "$s" | tr '\n' ' ' | sed  's/.*<[ ]*BODY[ ]*>\(.*\)<[ ]*\/[ ]*BODY[ ]*>.*/\1/g' | sed 's/<[^>]*>/ /g'

;; (C) David Vajda
;; 2025-04-17
;; atmega8/m8 PORTB Excersize



.include "m8def.inc"

ldi r16, 0xff
out DDRB, r16
ldi r16, 0b10101010
out PORTB, r16

end: rjmp end

;; (C) David Vajda
;; 2025-04-17
;; LED Count - Loop - blink

.include "m8def.inc"

ldi r16, HIGH (RAMEND)
out SPH, r16
ldi r16, LOW (RAMEND)
out SPL, r16

ldi r16, 0xff
out DDRB, r16

ldi r16, 0xff

loop1:
com r16
out PORTB, r16
com r16
rcall sleep
dec r16
rjmp loop1

sleep:
push r16
push r17
ldi r17, 0xff
ldi r16, 0xff
sleep_1:
sleep_2:
dec r17
brne sleep_2
dec r16
brne sleep_1
pop r17
pop r16
ret

;; so o'g'faehr

;; (C) David Vajda
;; 2025-04-17
;; m8 - rs232 - transmit

.include "m8def.inc"

ldi r16, HIGH (RAMEND)
out SPH, r16
ldi r16, LOW (RAMEND)
out SPL, r16

ldi r16, HIGH (25)      ;; value for baudrate = 2200
out UBRRH, r16
ldi r16, LOW (25)       ;; value for baudrate = 2200
out UBRRL, r16

ldi r16, (1 << URSEL) | (1 << USCZ1) | (1 << USCZ0)
out UCSRC, r16
ldi r16, (1 << TXEN)    ;; muss ich nachucken
out UCSRB, r16          ;; muss ich nachgucken s

transmitloop:
ldi r16, 'd'
rcall rs232transmit
ldi r16, 'a'
rcall rs232transmit
ldi r16, 'v'
rcall rs232transmit
ldi r16, 'i'
rcall rs232transmit
ldi r16, 'd'
rcall rs232transmit
ldi r16, '@'
rcall rs232transmit
ldi r16, 'w'
rcall rs232transmit
ldi r16, 'w'
rcall rs232transmit
ldi r16, 'w'
rcall rs232transmit
ldi r16, '.'
rcall rs232transmit
ldi r16, 'd'
rcall rs232transmit
ldi r16, 'v'
rcall rs232transmit
ldi r16, 'a'
rcall rs232transmit
ldi r16, 'j'
rcall rs232transmit
ldi r16, 'd'
rcall rs232transmit
ldi r16, 'a'
rcall rs232transmit
ldi r16, '.'
rcall rs232transmit
ldi r16, 'd'
rcall rs232transmit
ldi r16, 'e'
rcall rs232transmit
ldi r16, 10
rcall rs232transmit
ldi r16, 13
rcall rs232transmit
rjmp transmitloop

rs232transmit:
                        ;; muss ich nachgucken
sbis rs232transmit
out UDR, r16            ;; .. muss ich nachgucken
ret