0
openssl을 사용하여 cert에 서명하는 것이 처음입니다. 위의 오류를 계속 치고 realpath()를 시도하고 file : //을 추가했지만 여전히 openssl을 사용하여 프로필에 서명 할 수 없습니다. 나는 이것이 어떻게 작동하는지 이해하지 못한다. 모든 통찰력은 인정 될 것이다.Openssl_pkcs7_sign() : 파일을 여는 중 오류가 발생했습니다.
편집 1 : 어떤 파일이 문제인지 확실하지 않습니다. 오류 메시지가 구체적이지 않았습니다. 알 수있는 방법이 있습니까?
코드 아래 스크린 샷 :
function signProfile()
{
$filename = "./template.mobileconfig";
$filename = realpath($filename);
$outFilename = $filename . ".tmp";
$pkey = dirname(__FILE__) . "/PteKey.key";
$pkey = realpath($pkey);
$certFile = dirname(__FILE__) . "/CertToSign.crt";
$certFile = realpath($certFile);
// try signing the plain XML profile
if (openssl_pkcs7_sign($filename, $outFilename, 'file://'.$certFile, array('file://'.$pkey, ""), array(), 0, ""))
{
// get the data back from the filesystem
$signedString = file_get_contents($outFilename);
// trim the fat
$trimmedString = preg_replace('/(.+\n)+\n/', '', $signedString, 1);
// convert to binary (DER)
$decodedString = base64_decode($trimmedString);
// write the file back to the filesystem (using the filename originally given)
$fh = fopen($filename, 'w');
fwrite($fh, $decodedString);
fclose($fh);
// delete the temporary file
unlink($outFilename);
return TRUE;
}
else
{
return FALSE;
}
}
이 날 오후 주시기 바랍니다. :) – f0rfun