Schrift
[thread]4396[/thread]

Crypt::SSLeay & Zertifikate: Es will nicht klappen, HILFE!



<< >> 7 Einträge, 1 Seite
dcraul
 2006-01-27 14:26
#37037 #37037
User since
2006-01-27
11 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich habe zwei Zertifikate: ein Zertifikat eines Servers um eine https-Verbindung dorthin aufbauen zu können und ein Client-Zertifikat für die Authentisierung an diesem Server.

Das sind nun ein ".cer"-File und eine ".p12"-Datei

Ich versuche z.B. folgendes:
$ENV{HTTPS_CA_DIR} = 'c:\\zertifikate';
$ENV{HTTPS_CERT_FILE} = 'csroot.cer';

aber das klappt nicht. Ich bekomme immer die Meldung "file not found" und das obwohl die Datei 100% dort ist???

Verwende ich überhaupt die richtigen ENV-Variablen? Kann mir vielleicht jemand mal generell erklären oder einen Link posten, was wie in diesem Fall zu tun ist?
Ishka
 2006-01-27 14:38
#37038 #37038
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
wenn das eine .p12-Datei ist, solltest du dann nicht auch 'c:\\zertifikate.p12'; schreiben?

Ansonsten hilft es vielleicht mal das Beispielprogramm aus der Hilfe genauer anzuschauen ( http://search.cpan.org/~chamas/Crypt-SSLeay-0.51/SSLeay.pm ).
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
dcraul
 2006-01-27 14:49
#37039 #37039
User since
2006-01-27
11 Artikel
BenutzerIn
[default_avatar]
Neee ... einen Fehler habe ich ja schon entdeckt, aber ich habe zwei (2) Dateien:

- csroot.cer (Server-Zertifikat für https)
- cslientcert.p12 (Client-Zertifikat für Auth)

Mein Problem: Was gehört wo hin?

Wenn ich:

$ENV{HTTPS_CERT_FILE} = 'c:\\Zertifikate\\csroot.cer';
und
$ENV{HTTPS_CA_DIR} = 'c:\\Zertifkate';
$ENV{HTTPS_CA_FILE} = 'csclientcert.p12';

mache, fliege ich mit "file not found" raus. Lasse ich das HTTPS_CERT_FILE weg, dann falle ich nicht gleich auf die Nase, sondern erst nach einem "SSL Negotiation failed"

Und nun? Fehlt mir was? Was muss ich sonst setzen? Die Beispiel sind doch alle Müll und helfen kein Strich, wenn man nicht weiss wo und wie?
GwenDragon
 2006-01-27 15:01
#37040 #37040
User since
2005-01-17
14741 Artikel
Admin1
[Homepage]
user image
Also so ganz unverständlich ist die Doku zu Crypt::SSLeay nicht. Es braucht vielleicht ewas Geduld und Verständis für Programmierer-Englisch. ;)

Quote
PEM encoded certificate and private key files may be used like this:

 $ENV{HTTPS_CERT_FILE} = 'certs/notacacert.pem';
 $ENV{HTTPS_KEY_FILE}  = 'certs/notacakeynopass.pem';

Additionally, if you would like to tell the client where the CA file is, you may set these. These *CA* configs are ALPHA as of version .29.

 $ENV{HTTPS_CA_FILE} = "some_file";
 $ENV{HTTPS_CA_DIR}  = "some_dir";


$ENV{HTTPS_CERT_FILE} PEM-codiertes Zertifikat des Servers
$ENV{HTTPS_KEY_FILE}  PEM-kodierter privater Key des Servers
$ENV{HTTPS_CA_FILE}  Datei, welches die RootCA enthält

Quote
 # CLIENT PKCS12 CERT SUPPORT
 $ENV{HTTPS_PKCS12_FILE}     = 'certs/pkcs12.pkcs12';
 $ENV{HTTPS_PKCS12_PASSWORD} = 'PKCS12_PASSWORD';
Für Clientseitige Zertifikate

Der Server liefert doch ein Zertifikat an den Client für den SSL-Handshake.
Du musst nur das Root-CA und das Client-Zertifikat haben.\n\n

<!--EDIT|GwenDragon|1138367315-->
dcraul
 2006-01-27 15:19
#37041 #37041
User since
2006-01-27
11 Artikel
BenutzerIn
[default_avatar]
Ja das hilft mir mächtig weiter ...

Aaaaaalso muss ich mittels $ENV{HTTPS_CA_FILE} das Root-Zertifikat des Servers angeben.... so weit so gut, aber irgendwie steht das für mich nicht lesbar in dieser Doku ...


So und was bitte ist ein "PEM-kodiertes Zertifikat" und woran erkenne ich das? Und wieso habe ich dann nur eine weitere Datei, wenn normalerweise man Zertifikat UND privaten Schlüssel braucht und was mache ich mit der einen Datei?
Wenn ich der Client bin, wieso sollte ich dann den privaten Schlüssel des Servers bekommen?

Ich gebe ja zu ich habe nicht die geringste Ahnung, aber irgend etwas passt da für mich nicht zusammen.
GwenDragon
 2006-01-27 15:24
#37042 #37042
User since
2005-01-17
14741 Artikel
Admin1
[Homepage]
user image
Ein PEM-codiertes Zertifikat sieht in einem Editor so aus (... = viele weitere Zeilen gleicher Art):
Code: (dl )
1
2
3
4
5
6
-----BEGIN CERTIFICATE-----
MIIGLDCCBBSgAwMIGiMQswCQYD
VQQGEwJERTEPMA0GA1UECBMGQmF5ZXJuMR0wOZXVua2lyY2hlbiBh
...
yVPTVlV7FwBJDJx/+O9B0mBCydloV8YU+c5qX1q2AEFr6gNJNm
-----END CERTIFICATE-----


1. Woher hast du die Zertifikate?
2. Wer hat diese signiert?
3. Was willst du denn genau machen?\n\n

<!--EDIT|GwenDragon|1138369097-->
dcraul
 2006-01-27 15:51
#37043 #37043
User since
2006-01-27
11 Artikel
BenutzerIn
[default_avatar]
Es geht hier um die Entwicklung eines SOAP-Clients zu einem SOAP-Server. Die Zertifikate habe vom Provider des SOAP-Servers bekommen.

Ich glaube ich bin ein Stück weiter gekommen. Die .p12-Datei lässt sich in private Key und Zertifikat mittels OpenSSL exportieren.

Das habe ich auch versucht und die entstandenen Dateien scheinen wesentlich besser zu funktionieren, jedenfalls werde ich jetzt nach einer PEM-Passphrase gefragt.

[EDIT]
OK, das habe ich auch erledigt, wenn man den private Key unverschlüsselt erzeugen lässt, erledigt sich die Sache mit der Passphrase ... eigentlich logisch.
Die SSL-Negotiation klappt zwar immer noch nicht, aber jetzt soll mal der Provider schauen warum ... wenigstens send ich mal. ;-)
[/EDIT]\n\n

<!--EDIT|dcraul|1138370632-->
<< >> 7 Einträge, 1 Seite



View all threads created 2006-01-27 14:26.