![]() |
(Indy/OpenSSL) Zertifikate erstellen für SSL-Client/Server
Hi,
ich verwende in meinem Client/Server-Programm die Indykomponenten (TIdTCPClient). Diese möchte ich nun gerne mit SSL ausstatten, was auch soweit ganz gut klappt. Allerdings habe ich jetzt das leidige Problem mit den Zertifikaten. Ich hab mir aus einem Beispiel welche kopiert, und das klappt soweit auch. Jetzt möchte ich allerdings gerne eigene Benutzen, weiß aber nicht, wie ich meinen Programmen beibringen kann, welche zu erzeugen (an die OpenSSL-DLLs komme ich ran, den Sourcecode (bis auf die openssl_lib.pas) seht ihr auf ![]() Benötigt werden genauer 3 Zertifikate, einmal das Rootzertifikat (sampleRoot.pem), das beginnt mit "CERTIFICATE" in der Datei. Dann der Schlüssel selbst (beispiel.key), der mit "RSA PRIVATE" beginnt und (anscheinend) der öffentliche Teil des Schlüssels (beispiel.crt), der wieder mit "CERTIFICATE" beginnt. Hat da jemand Erfahrungen, eine Lösung oder Tipps? Ich wäre für alles dankbar, sowohl Beispielquelltext in irgendeiner Sprache (Delphi natürlich) bevorzugt, als auch Lösungen die openssl.exe aufrufen, oder was auch immer - hauptsache es kommen mit vertretbarem Aufwand die genannten Dateien am Ende dabei heraus. Vielen Dank schon mal für die Hilfe und viele Grüße sECuRE |
Re: (Indy/OpenSSL) Zertifikate erstellen für SSL-Client/Serv
*Post hochschieb*
würd mich auch interessieren wie des geht :) |
Re: (Indy/OpenSSL) Zertifikate erstellen für SSL-Client/Serv
Bei OpenSSL müßte es eigentlich Tools zum erstellen von Keys und Zertifikaten geben.
|
Re: (Indy/OpenSSL) Zertifikate erstellen für SSL-Client/Serv
Erstmal
![]() Dann eine Konsole öffnen und in das Verzeichnis C:\Programme\OpenSSL\bin wechseln. Dort dann openssl.exe aufrufen.
Code:
Enter PEM pass phrase: Mein Passwort
OpenSSL> req -config openssl.cnf -new -out zertifikat.csr
Country Name: DE State or Province Name: Mein Bundesland Locality Name: Mein Ort Organization Name: Meine Firma Organization Unit Name: Meine Abteilung Common Name: Mein Name Email Adress: ich@du.de A challenge Passwort: Mein Zertifikat-Passwort
Code:
Enter pass phrase for privkey.pem: Mein Passwort
OpenSSL> rsa -in privkey.pem -out zertifikat.key
Code:
(365 Tage gültig, kann auch anders gewählt werden)
OpenSSL> x509 -in zertifikat.csr -out zertifikat.cert -req -signkey zertifikat.key -days 365
Code:
Die erstellten Dateien befinden sich jetzt im BIN-Ordner.
OpenSSL> exit
privkey.pem -> sample.key zertifikat.cert -> sample.crt, sampleRoot.pem
Delphi-Quellcode:
Hoffe das hilft.
IdServerIOHandlerSSLOpenSSL.SSLOptions.KeyFile:='sample.key';
IdServerIOHandlerSSLOpenSSL.SSLOptions.CertFile:='sample.crt'; IdServerIOHandlerSSLOpenSSL.SSLOptions.RootCertFile:='sampleRoot.pem'; : procedure TForm.IdServerIOHandlerSSLOpenSSLGetPassword(var Password: String); begin password:= 'Mein Passwort'; end; Gruss Thorsten |
Re: (Indy/OpenSSL) Zertifikate erstellen für SSL-Client/Serv
Also ich hab jetzt die Zertifikate erstellt, dann die privkey.pem in sample.key umbenannt und die zertifikat.cert kopiert und in sample.crt und sampleRoot.pem umbenannt.
Allerdings erhalte ich immer den Fehler 'Could not load SSL Library'
Delphi-Quellcode:
Beim IdHTTP1 ist als IOHandler IdSSLIOHandlerSocketOpenSSL1 eingestellt. Was mach ich falsch?
procedure TForm1.Button1Click(Sender: TObject);
begin IdSSLIOHandlerSocketOpenSSL1.SSLOptions.KeyFile := 'sample.key'; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.CertFile := 'sample.crt'; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.RootCertFile := 'sampleRoot.pem'; Memo1.Lines.Add(IdHTTP1.Get('https://www.digiposter.de/info/de/test_ssl.html')); end; procedure TForm1.IdSSLIOHandlerSocketOpenSSL1GetPassword(var Password: string); begin password:= '*********'; end; |
Re: (Indy/OpenSSL) Zertifikate erstellen für SSL-Client/Serv
Hallo MrPayne,
kommt der Fehler auch mit den Beispieldateien? Bei mir war das so und ich habe dann noch etwas verändert. Vielleicht kannst du das ja noch mal mit den original Beispieldateien testen. Gruss Thorsten |
Re: (Indy/OpenSSL) Zertifikate erstellen für SSL-Client/Serv
Fehler gefunden. Man braucht extra openssl DLLs :roll:
|
Re: (Indy/OpenSSL) Zertifikate erstellen für SSL-Client/Serv
Kannst du da noch etwas genauer werden?
Welcher, Woher, Wohin... |
Re: (Indy/OpenSSL) Zertifikate erstellen für SSL-Client/Serv
Die DLLs bekommst du
![]() |
Re: (Indy/OpenSSL) Zertifikate erstellen für SSL-Client/Serv
:thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:50 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 by Thomas Breitkreuz