Zitat von
delphin06:
D.h. also wenn ich nur ein Serverzertifikat nutzen möchte, bräuchte ich nur im IOSSLHandler der Server Application das "CertFile" angeben?
Falsch. Wenn Du nur ein Serverzertifikat nutzt, brauchst Du nichts außer dem TIdSSLIOHandlerSocketOpenSSL IOHandler für z.B. das TIdHTTP oder TIdFTP.
Wenn Du dem TIdSSLIOHandlerSocketOpenSSL einen VerifyMode ungleich [] zuweist, wird OnVerifyPeer genutzt, um die bzw. das Zertifikat Dir zur Prüfung vorzulegen.
Delphi-Quellcode:
aus IdSSLOpenSSL.pas:
TIdSSLVerifyMode = (sslvrfPeer, sslvrfFailIfNoPeerCert, sslvrfClientOnce);
und
function IdSSLIOHandlerSocketVerifyPeer(Certificate: TIdX509; AOk: Boolean; ADepth: Integer): Boolean;
Das Server-Zertifikat als ganzes wäre dann in Certificate.Subject.OneLine zu finden und du könntest mit Pos() z.B. auf eine Domain prüfen.
Zitat von
delphin06:
Wenn ich zusätzlich dem Client n das gleiche Zertifikat gebe, dann könnte ich mit der Server Application prüfen ob der Client das Zertifikat hat und dann diesen authorisieren, oder?
Richtig, nur halt dann umgekehrt.
Zitat von
delphin06:
Wo finde ich die Dokumentation zu den
Indy Copmonenten?
Am liebsten wäre mir n schönes Tutorial zu dem Thema..
Ja, gute Frage. Soweit ich weiß gibt es da derzeit nicht viel zu. Die Demos, die Sourcen und zuletzt auch die Online-Referenz unter
http://www.indyproject.org/docsite/html/frames.html.
Das ist aber ein Problem welches es bei Delphi häufig gibt. Das hab ich bei DiXML, Tnt/TMSUnicode und vielen anderen auch schon gesehen. Keinerlei Dokumentation...
Zitat von
delphin06:
Wofür sind denn dann CipherList und Keyfile?
Theoretisch zur Zuweisung von zulässigen Verschlüsselungsalgorithmen. Keyfile ist ein privater Schlüssel (PEM Cert). Aber das würde ich alles erst nutzen, wenn Du auch außerhalb von
Indy + OpenSSL damit Erfahrung hast. Sonst wird die Fehlersuche für Dich zur Qual *
Gruß Assertor
P.S.: Aber ab jetzt bitte neuer Thread für neue Fragen