php 서명 오류는 문서에 포함된 서명 컨테이너가 원래 예약된 크기를 초과하기 때문에 발생합니다. 해결 방법은 서명 컨테이너를 위해 더 많은 공간을 예약하는 것입니다.
이 문서의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터
PHP 서명 오류 문제를 해결하는 방법?
문제 설명:
TCPDF를 사용하고 있습니다. PDF 문서를 생성하고 서명하려면 TCPDF 자체가 소스 코드를 기반으로 하는 PHP의 openssl_pkcs7_sign 함수를 호출합니다.
최근까지 모든 것이 잘 작동했습니다. 그런 다음 인증서 공급자를 방금 업데이트했습니다. 인증서 및 인증서 체인 :
$pdf->setSignature( $this->public_certificate_path, $this->private_key_path, $this->private_key_password, $this->extra_certificates_path, 1);
extra_certificates_path 파일에 PEM 형식의 새 루트 및 중간 인증서를 복사했습니다. openssl을 사용하여 파일을 확인했는데 괜찮아 보입니다.
이제 Adobe Reader에서 서명된 PDF를 열면 표시됩니다. 다음 오류:
打开文件时,它说<块引用> 此文件已损坏但正在修复中 上面的蓝丝带说<块引用> 认证无效 当我打开签名面板时,它显示<块引用> 由 %s 认证 错误详情说<块引用> 此签名中包含的格式或信息有错误(支持信息:SigDict/Contents 非法数据) 当我点击"证书详细信息"时,没有任何反应?
해결책:
OP에서 공유한 샘플 파일을 분석하면 문제를 이해할 수 있습니다. 문서에 포함된 서명 컨테이너가 원래 예약된 크기를 초과합니다.
그래서 해결 방법은 다음과 같습니다. 서명 컨테이너를 위한 더 많은 공간을 예약합니다.
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP 서명 오류 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!