Zu Testzwecken habe ich eine Php datei geschrieben, dessen Inhalt ich aus dem PHP.net geholt habe. der Code sieht folgendermassen aus
- Code: Select all
// Die Nachricht die Sie verschlüsselt an Ihren Geheimagenten,
// bekannt als Nachtfalke, schicken wollen.
// Sein Zertifikat liegt Ihnen in der Datei nighthawk.pem vor.
$data = <<<EOD
Nachtfalke,
Streng geheim, nur für Ihre Augen bestimmt!
Der Feind kommt näher! Treffen Sie mich im Cafe um 8.30 abends.
Sie erhalten Ihren gefälschten Ausweis!
HQ
EOD;
// speichern der Nachricht in einer Datei
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// Setup mail headers.
$headers = array("To" => "someone@nowhere.net",
"From" => "noone@somewhere.net",
"Subject" => "A signed and encrypted message.");
// Get the public key certificate.
$pubkey = file_get_contents("zertifikat.pem");
//encrypt the message, now put in the headers.
openssl_pkcs7_encrypt("msg", "enc.txt",
$pubkey,$headers,0,1);
while ($msg = openssl_error_string()){
echo $msg . "<br />\n";
}
$data = file_get_contents("enc.txt");
// separate header and body, to use with mail function
// unfortunate but required, else we have two sets of headers
// and the email client doesn't decode the attachment
$parts = explode("\n\n", $data, 2);
// send mail (headers in the Headers parameter will override those
// generated for the To & Subject parameters)
mail($mail, $subject, $parts[1], $parts[0]);
Ich bekomme eine Fehlermeldung in der Form
- Code: Select all
error:2006D080:BIO routines:BIO_new_file:no such file
error:02001002:system library:fopen:No such file or directory
Muss ich irgendwas an openssl einstellen, damit ich die PHP-funktionen benutzen kann???
Ps: Das Zertifikat ist gültig. So viel Transferleistung kann man von mir erwarten