2017-10-17 16 views
0

디지털 서명 된 PDF를 PFX 파일로 만들어야합니다. 나는 이것을 위해 TCPDF를 사용하고 있지만 TCPDF는 PEM/CRT 파일과 함께 작동한다. 공유 호스팅의 파일을 업로드하고 파일을 변환하려고하면 항상 0KB입니다.어떻게 PHP 스크립트로 Godaddy와 같은 공유 호스팅에서 ptx를 crt/pem으로 변환 할 수 있습니까?

이것은 내가 시도한 코드입니다.

exec('openssl pkcs12 -in cert.pfx -nocerts -out keyfile-encrypted.key'); 
+0

명령 행에서'openssl pkcs12 -in cert.pfx -nocerts -out keyfile-encrypted.key'를 수행하면 어떻게 될까요? 아마도 "openssl pkcs12"사이트 : stackoverflow.com (https://www.google.com/search?q= "openssl + pkcs12"+ site % 3Astackoverflow.com)로 연결됩니다. – jww

+0

감사합니다. 하지만 난 알아 냈어. .key 및 .cer 확장자가있는 별도의 새 파일로 개인 키와 인증서를 추출했습니다. @wwww –

답변

0

몇 가지 가능성 : 나는 PEM 형식의 개인 키와 인증서가 모두 필요 디지털 서명에 대한 생각

  • . -nocerts 옵션을 사용 했으므로 비공개 키만 가져옵니다. 인증서를 PEM 내보내기의 일부로 유지하려면 해당 옵션을 제거하십시오.
  • 갖고있는 PFX 파일이 암호화 된 경우명령에 암호화 암호를 입력해야 PFX 파일의 암호를 해독 할 수 있습니다. openssl에서 0KB 파일을 가져 오는 경우 요청의 비 대화식 특성을 감지하고 종료 할 수 있습니다.
  • openssl이 결과 파일을 암호화하지 못하게하려면 openssl 명령에 -nodes 옵션을 지정해야합니다. 다시 말하지만, openssl이 입력 (암호화 암호)을 기다리고 있지만 비 대화식 호출을 감지하는 경우 파일에 아무 것도 쓰지 않으면 실패 할 수 있습니다. 출력을 사용하여 무엇을 결정하기 위해 PHP의 exec 전화의 var에 매개 변수를 반환
  • 잘못이야 :

    간부를 ('OpenSSL을 PKCS12 -in cert.pfx -nocerts -out 키 파일 - encrypted.key', $ 출력 , $ retval);

$output 변수는 명령의 출력을 포함해야합니다. $retval 변수에는 반환 코드가 들어 있으며, openssl의 설명서를 통해 확인할 수 있습니다.

+0

고마워요! 하지만 난 알아 냈어. .key와 .cer 확장자로 각각 별도의 새 파일에 개인 키와 인증서를 추출했다. –