2013-06-07 3 views
0

Xampp (PHP 5.4.7, OpenSSL 1.0.1c)에서 PKPass 클래스를 사용하여 PHP에서 iOS 통장에 서명하려고합니다.PHP 함수에서 pem 파일을 여는 중 오류가 발생했습니다. openssl_pkcs7_sign

결과 서명 파일이 비어 있고 PHP 로그에 다음 메시지가 표시됩니다. "PHP 경고 : openssl_pkcs7_sign() : 파일을 여는 중 오류가 발생했습니다 : AWDRCA.pem". 내가 매개 변수의 모든 변수를 확인한

openssl_pkcs7_sign(
    $paths['manifest'], 
    $paths['signature'], 
    $certdata, 
    $privkey, 
    array(), 
    PKCS7_BINARY | PKCS7_DETACHED, 
    $this->WWDRcertPath 
); 

: 여기

내가 실행 코드입니다. 커맨드 라인을 사용하여 openssl로 통장을 생성 했으므로 인증서가 정상입니다.

+0

AWDRCA.pem은 어느 것입니까? certdata 또는 개인 키? – VolkerK

+0

AWDRCA.pem은 "$ this-> WWDRcertPath"입니다 (Apple World Wide Developer Relations Certification Authority). – olivier

+0

WWDRcertPath의 내용을 오류 로그'error_log (print_r ($ this-> WWDRcertPath, true), 0);'에 쓰면 어떻게 될까요? 파일 경로가 정확하고 파일이 존재한다면 PHP는 그것을 읽는데 필요한 권한을 가지고 있습니까? – PassKit

답변

2

PHP 환경의 Openssl 확장이 너무 오래되었을 수도 있습니다. 절대 경로를 "D : /xampp/www/1.pem"으로 지정해야합니다.

+0

스택 오버플로에 오신 것을 환영합니다. 이것은 답이 아니라 주석입니다. 답변으로 게시하지 마십시오. (또한 우리는 메시지가 아닌 댓글의 문제를 해결하기를 원하므로 동일한 문제가있는 미래의 방문자가 혜택을 얻을 수 있습니다. {또한 여기에서는 비공개 메시지가 없습니다.}) – michaelb958

+0

버튼을 찾을 수 없습니다. 덧글에, 그리고 내 대답은 옳다고 생각, 문제를 해결할 수 있습니다. –

+0

첫째, [당신은 50 평판의 코멘트가 필요합니다] (http://stackoverflow.com/help/privileges/comment). 둘째로, 질문에 올바르게 대답하기에 충분하지 않은 것처럼 보입니다 (적어도 저에게). 이것은 두 문장입니다. 그 중 하나가 * Maybe *로 시작하고 코드 샘플이 보이지 않습니다 - 답변이되기 위해서는 더 많은 작업이 필요합니다. – michaelb958