AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Dateien von einem virtuellen Server holen
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien von einem virtuellen Server holen

Ein Thema von zeras · begonnen am 5. Mai 2021 · letzter Beitrag vom 13. Jun 2021
Antwort Antwort
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#1

AW: Dateien von einem virtuellen Server holen

  Alt 18. Mai 2021, 19:00
HTTP(S) wäre wohl naheliegend, Millionen Webserver arbeiten so für die Browser / Clients.
Das könnte man auch per Scripting automatisieren / lokal cachen, so dass am Programm vielleicht nur minimal geändert werden muss.

Am wichtigsten scheint mir hier die Frage, ob es ein LAN Betrieb ist oder WAN.
Und dementsprechend müsste man für eine Authentifizierung des Client sorgen / verhindern, dass jemand die Quelladressen belauscht bzw. einfach so abgreifen kann. Darum scheint es ja zu gehen.

HTTPS wäre wahrscheinlich ein Fall für letsEncrypt, wobei das im LAN nicht geht. Oder der Server muss für Einrichtung und Refresh dann von Außen erreichbar sein.
Gruß, Jo
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.654 Beiträge
 
Delphi 12 Athens
 
#2

AW: Dateien von einem virtuellen Server holen

  Alt 18. Mai 2021, 19:15
Am wichtigsten scheint mir hier die Frage, ob es ein LAN Betrieb ist oder WAN.
Und dementsprechend müsste man für eine Authentifizierung des Client sorgen / verhindern, dass jemand die Quelladressen belauscht bzw. einfach so abgreifen kann. Darum scheint es ja zu gehen.
Derzeit soll es bei uns im Intranet laufen. Ob der Bedarf kommt, diese Daten auch von außerhalb downloaden zu können, steht noch nicht fest.

Wegen der Authentifizierung habe ich aber noch keine Erfahrungen. Ich müsste doch im Client irgendwo ein Zertifikat ablegen oder?


HTTPS wäre wahrscheinlich ein Fall für letsEncrypt, wobei das im LAN nicht geht. Oder der Server muss für Einrichtung und Refresh dann von Außen erreichbar sein.
In der Firma müssten ja höchstwahrscheinlich Zertifikate existieren. Vielleicht kann ich diese nehmen.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: Dateien von einem virtuellen Server holen

  Alt 18. Mai 2021, 22:25

Wegen der Authentifizierung habe ich aber noch keine Erfahrungen. Ich müsste doch im Client irgendwo ein Zertifikat ablegen oder?

In der Firma müssten ja höchstwahrscheinlich Zertifikate existieren. Vielleicht kann ich diese nehmen.
Eine Authentifizierung hat nichts mit Zertifkaten zu tun. Du musst einen solchen Mechanismus intern in der Anwendung bauen, wie er auf vielen Webseiten interaktiv verwendet wird, z.B. hier in DP, Benutzeranmeldung. Da das System ja die Datenquelle verschleiern soll, würde man aber kaum eine interaktive Benutzeranmeldung verwenden. Dafür gibt es bestimmt Komponenten in Delphi.
Die HTTPS Geschichte kannst Du einfach Deiner IT überlassen, Dich interessieren nur URL, worüber die Dateien abgerufen werden. Wenn es HTTPS sein soll, dann muss die IT das regeln. Dein Server Programm stellt ja erstmal nur über HTTP die Dateien bereit. Je nach Konfiguration liefert der Webserver per HTTP oder HTTPS oder beidem aus.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.549 Beiträge
 
Delphi 12 Athens
 
#4

AW: Dateien von einem virtuellen Server holen

  Alt 18. Mai 2021, 22:40
TIdHTTPServer ist selbst der Webserver.
Aber ja, man kann auch über einen anderen Webserver HTTP/HTTPS laufen lassen und es serverintern ans HTTP des Delphi-Webserver durchreichen.


Selbst noch nicht gemacht, aber ich denke mal HTTPS würde so gehn:
> TIdHTTPServer.IOHandler und dort z.B. einen TIdServerIOHandlerSSLOpenSSL dran

Und falls auch ein Delphi-Client existiert, dann TIdHTTP vermutlich mit TIdSSLIOHandlerSocketOpenSSL. (wie es beim neuen TNetHTTPClient geht, noch weniger Ahnung)



Authentication:
https://de.wikipedia.org/wiki/HTTP-Authentifizierung

* schau mal was TIdHTTPServer.OnParseAuthentication macht
* aber spätestens in TIdHTTPServer.OnCommandGet kannst in ARequestInfo nochmal den Username+Passwort der aktuellen Anfrage auslesen/prüfen

* bei TIdHTTP siehe OnAuthorization und OnSelectAuthorization (z.B. mit TIdBasicAuthentication)

Schade, dass es nicht sowas wie bei den REST-Komponenten gibt: also TSimpleAuthenticator/THTTPBasicAuthenticator/TOAuth1Authenticator/TOAuth2Authenticator, welche man anhängen kann.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (18. Mai 2021 um 22:56 Uhr)
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.654 Beiträge
 
Delphi 12 Athens
 
#5

AW: Dateien von einem virtuellen Server holen

  Alt 21. Mai 2021, 12:55
Ich habe jetzt von unserer IT folgendes bekommen:

xxxxx.cer – Das ist das Webserverzertifikat als solches
Issuca.cer - Das ist das Zertifikate der immediate-CA
Rootca.cer - Das ist das Zertifikat der Root-CA
xx.key - Das ist der private Key

Reichen diese Dateien für HTTPS aus?
Kommen die alle in die Routinen vom HTTPServer?
Man sagte dass ich auch den Zertifikatsspeicher von Windows auslesen könne. Da habe ich aber noch gar keine Beispiele gefunden.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.654 Beiträge
 
Delphi 12 Athens
 
#6

AW: Dateien von einem virtuellen Server holen

  Alt 24. Mai 2021, 19:28
Ich habe jetzt von unserer IT folgendes bekommen:

xxxxx.cer – Das ist das Webserverzertifikat als solches
Issuca.cer - Das ist das Zertifikate der immediate-CA
Rootca.cer - Das ist das Zertifikat der Root-CA
xx.key - Das ist der private Key

Reichen diese Dateien für HTTPS aus?
Kommen die alle in die Routinen vom HTTPServer?
Man sagte dass ich auch den Zertifikatsspeicher von Windows auslesen könne. Da habe ich aber noch gar keine Beispiele gefunden.
Ich habe nun ein wenig weiter geforscht. HTTP geht, ich muss aber HTTPS nutzen.
Genutzt habe ich dann IdHTTPServer1 und dann im IOHandler dann IdServerIOHandlerSSLOpenSSL1 gesetzt. Dann soll ich noch die beiden DLL von Indy ins Programmverzeichnis kopieren. Soweit verstehe ich das.
Was aber mit den o.g. Dateien?
SSLOption.KeyFile -> xx.key
SSLOption.RootCertFile -> Rootca.cer
SSLOption.CertFile -> Issuca.cer oder xxxxx.cer ???
Wenn ich das xxxxx.cer anklicke, sehe ich oberhalb dann das Issuca.cer und dann ganz oben das Rootca.cer. Damit habe ich 3 Zertifikate, aber nur 2 Einträge in den SSLOptions.
Benötige ich alle 3 Zertifikate oder nur 2?
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.094 Beiträge
 
Delphi 12 Athens
 
#7

AW: Dateien von einem virtuellen Server holen

  Alt 24. Mai 2021, 20:11

Wegen der Authentifizierung habe ich aber noch keine Erfahrungen. Ich müsste doch im Client irgendwo ein Zertifikat ablegen oder?

In der Firma müssten ja höchstwahrscheinlich Zertifikate existieren. Vielleicht kann ich diese nehmen.
Eine Authentifizierung hat nichts mit Zertifkaten zu tun. Du musst einen solchen Mechanismus intern in der Anwendung bauen, wie er auf vielen Webseiten interaktiv verwendet wird, z.B. hier in DP, Benutzeranmeldung. Da das System ja die Datenquelle verschleiern soll, würde man aber kaum eine interaktive Benutzeranmeldung verwenden. Dafür gibt es bestimmt Komponenten in Delphi.
Die HTTPS Geschichte kannst Du einfach Deiner IT überlassen, Dich interessieren nur URL, worüber die Dateien abgerufen werden. Wenn es HTTPS sein soll, dann muss die IT das regeln. Dein Server Programm stellt ja erstmal nur über HTTP die Dateien bereit. Je nach Konfiguration liefert der Webserver per HTTP oder HTTPS oder beidem aus.
Es seo denn, sein Programm ist gleich der Webserver.
Indy kann m.W. aber auch HTTPS mittels OpenSSL.
Und von OpenSSL gibt's zur noch auch ein Tool um ein Zertifikat
zu generieren. Da es selbst erzeugt ist werden halt alle möglichen
Webbrowser meckern, wenn's aber nur Anwendungsintern geht und das Zertifikat
v.a. zur Verschlüsselung benutzt werden soll, dann könnte das schon reichen.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#8

AW: Dateien von einem virtuellen Server holen

  Alt 25. Mai 2021, 18:05
Ja, keine Ahnung. Auch ein Webserver bedient für mich erstmal HTTP. Das muss ganz normal in allen Lebenslagen funktioniern. Davor hängt dann jenachdem ein Apache oder nginx .. und macht den Rest, z.B. HTTPS. Sowas würde ich nicht selbst schreiben. Die Indy Compos kenne ich auch nicht.
Gruß, Jo
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.654 Beiträge
 
Delphi 12 Athens
 
#9

AW: Dateien von einem virtuellen Server holen

  Alt 30. Mai 2021, 20:50
Ich habe nun von unserer IT die Info bekommen, ob ich das nicht über den IIS machen könnte. So habe ich im Delphi eine DLL erstellt. Auf meinem Rechner scheint das nun zu gehen, nur muss es auch auf dem virtuellen Server gehen. Dann sollte höchstwahrscheinlich auch das Problem mit den Zertifikaten erledigt sein.

Ich berichte wieder, wenn es neue Erkenntnisse gibt.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.549 Beiträge
 
Delphi 12 Athens
 
#10

AW: Dateien von einem virtuellen Server holen

  Alt 30. Mai 2021, 21:21
Wie schonmal gesagt, kann der IIS das HTTP/HTTPS an einen anderen (deinen) HTTP-WebServer weiterreichen. (er macht dann das SSL/TSL)
OK, oder eben via DLL direkt da rein.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz