Hallo!
Ich habe ein selbstsigniertes Zertifikat erstellt. Die csr.pem habe ich dem Serverbetreiber gegeben und er hat mir ein signiertes Zertifikat client.pem zurückgegeben. Nun soll das übliche TIdHTTP+TIdSSLIOHandlerSocketOpenSSL - Gespann eine gewöhnliche TLS1.2-gesicherte Verbindung aufbauen. Bei TIdSSLIOHandlerSocketOpenSSL.SSLOptions.CertFile gebe ich den Pfad zur client.pem an.
Beim Versuch eines GET-Request zum Server steigt
Indy jedoch mit einer EIdOSSLLoadingKeyError
Exception aus. Gebe ich zusätzlich unter TIdSSLIOHandlerSocketOpenSSL.SSLOptions.KeyFile noch den Pfad zu der ursprünglich von mir erstellten privkey.pem an, dann baut
Indy die Verbindung problemlos auf.
Soweit ich aber das SSL/TLS-Prinzip verstehe, sollte es die Private Keys auf der Clientseite gar nicht brauchen. Ich beziehe mich dabei auf das
hier:
Zitat:
At no point in the SSL process does The SSL Store have your private key. It should be saved safely on the server you generated it on. Do not send your private key to anyone, as that can compromise the security of your certificate. If you lose your private key, you will be unable to install your SSL certificate and will need to generate a new key pair (CSR + Private Key) and re-issue the certificate.
Andernfalls müsste ich ja die privkey.pem in meinem Client-Setup ausliefern. Ich glaub das war nicht im Sinne des Erfinders. Bin ich da jetzt gedanklich falsch oder muss ich TIdSSLIOHandlerSocketOpenSSL nur anders konfigurieren?
Grüße
Cody