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 \begin{verbatim} 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 \begin{verbatim} 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:
Screenshot_20250422_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üssel: RSA, ELG, DSA, ECDH, ECDSA, EDDSA Verschlü.: 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üssel: RSA, ELG, DSA, ECDH, ECDSA, EDDSA Verschlü.: 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
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 % 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. \begin{verbatim} #!/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.
Screenshot_20250422_140114.png Screenshot_20250422_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:~$
Screenshot_20250422_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¶ NAME¶ 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.
Screenshot_20250422_140441.png Screenshot_20250422_140540.png
Screenshot_20250422_141214.png Screenshot_20250422_141315.png
<VirtualHost *.*> DocumentRoot /var/www/html/www20250422certtest ServerName www20250422certtest ServerAdmin david@dvajda.de </VirtualHost>
Screenshot_20250422_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#
Screenshot_20250422_141946.png Screenshot_20250422_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#
Screenshot_20250422_142020.png
Prima, der Name ist erreichbar. Jetzt müssen wir Apache zwei neustarten.
Screenshot_20250422_141710.png Screenshot_20250422_141946.png Screenshot_20250422_142020.png Screenshot_20250422_142124.png Screenshot_20250422_142726.png Screenshot_20250422_143012.png Screenshot_20250422_143359.png Screenshot_20250422_143518.png Screenshot_20250422_143547.png Screenshot_20250422_145156.png Screenshot_20250422_145203.png Screenshot_20250422_145248.png Screenshot_20250422_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üssel --generate-key Ein neues Schlüsselpaar erzeugen --quick-generate-key Schnell ein neues Schlüsselpaar erzeugen gpg --generate-keyEs 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 Cammeliaund 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üsselpaar erzeugen (alle Optionen) Bitte wählen Sie, welche Art von Schlüssel Sie möchten: (1) RSA und RSA (voreingestellt) (2) DSA und Elgamal (3) DSA (nur signieren/beglaubigen) (4) RSA (nur signieren/beglaubigen) (14) Vorhandener Schlüssel auf der Karte Ihre Auswahl?
Screenshot_20250422_102920.png Screenshot_20250422_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üssel: RSA, ELG, DSA, ECDH, ECDSA, EDDSA Verschlü.: 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 256Screenshot_20250422_103126.png Screenshot_20250422_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üssel: RSA, ELG, DSA, ECDH, ECDSA, EDDSA Verschlü.: 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 überprüft gpg: marginals needed: 3 completes needed: 1 trust model: pgp gpg: Tiefe: 0 gültig: 2 signiert: 0 Vertrauen: 0-, 0q, 0n, 0m, 0f, 2u gpg: nächste "Trust-DB"-Pflichtüberprüfung 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 überprüft gpg: marginals needed: 3 completes needed: 1 trust model: pgp gpg: Tiefe: 0 gültig: 2 signiert: 0 Vertrauen: 0-, 0q, 0n, 0m, 0f, 2u gpg: nächste "Trust-DB"-Pflichtüberprüfung 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 0A003F705CB27C75C03396888F598D1A2CD558F2Screenshot_20250422_105627.png Screenshot_20250422_105932.png
Screenshot_20250422_110029.png
gpg -a --output gpg-key --export <Schlüssel-ID oder Name> gpg -a --export <Schlüssel-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 0A003F705CB27C75C03396888F598D1A2CD558F2Screenshot_20250422_110036.png Screenshot_20250422_110340.png Screenshot_20250422_112505.png Screenshot_20250422_113709.png Screenshot_20250422_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.
Screenshot_20250422_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üsselt mit 1024-Bit RSA Schlüssel, 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üsselt mit 1024-Bit RSA Schlüssel, 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üsselt mit 1024-Bit RSA Schlüssel, 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
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.
Screenshot_20250422_134855.png Screenshot_20250422_140114.png Screenshot_20250422_140119.png Screenshot_20250422_140441.png Screenshot_20250422_140540.png Screenshot_20250422_141214.png Screenshot_20250422_141315.png Screenshot_20250422_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
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
Screenshot_20250422_114225.png Screenshot_20250422_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.
Screenshot_20250422_113905.png Screenshot_20250422_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> "Ich bin das zweite Keks"<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
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:~$
Screenshot_20250422_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.
Screenshot_20250421_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.deKommt 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 | 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:
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.
Screenshot_20250422_145254.png bis Screenshot_20250422_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#
Screenshot_20250422_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.
Screenshot_20250422_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#
Screenshot_20250422_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#
Screenshot_20250422_142124.pngr
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.
Screenshot_20250422_145254.png bis Screenshot_20250422_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#
Screenshot_20250422_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.
Screenshot_20250422_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#
Screenshot_20250422_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#
Screenshot_20250422_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
f27boder so
das ist bei POST Chamber mode, Post LOOP
Equip Flag
PTR * EQUIP_FLAGdas ist slide switch oder rocker switch, und bit 1 option 1
0b0000 0001AND 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
(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
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