
openssl_cms_sign 함수는 CMS (Certificate Management Specification) 서명 기능을 제공하는 함수입니다. CMS 서명은 디지털 서명 기능을 제공하는 함수입니다.
서명할 데이터를 지정하는 방법은 두 가지가 있습니다.
1. cms 옵션을 사용하여 서명할 때, 서명할 데이터는 PEM 형식의 문자열이 아닌 DER (Distinguished Encoding Rules) 형식의 바이너리 데이터여야 합니다. DER 형식의 바이너리 데이터는 PEM 형식의 문자열로 변환할 수 있습니다.
예를 들어, PEM 형식의 문자열을 DER 형식의 바이너리 데이터로 변환하는 방법은 다음과 같습니다.
#hostingforum.kr
php
$der_data = openssl_x509_export($cert, $out);
$der_data = openssl_encrypt($der_data, 'des-ede3-cbc', '비밀키', 0, '비밀키');
2. cms 옵션을 사용하지 않고 서명할 때, 서명할 데이터는 PEM 형식의 문자열이 될 수 있습니다. 이 경우, 서명할 데이터는 PEM 형식의 문자열을 DER 형식의 바이너리 데이터로 변환해야 합니다.
예를 들어, PEM 형식의 문자열을 DER 형식의 바이너리 데이터로 변환하는 방법은 다음과 같습니다.
#hostingforum.kr
php
$der_data = openssl_x509_export($cert, $out);
$der_data = openssl_encrypt($der_data, 'des-ede3-cbc', '비밀키', 0, '비밀키');
서명할 데이터는 DER 형식의 바이너리 데이터여야 하므로, PEM 형식의 문자열을 DER 형식의 바이너리 데이터로 변환해야 합니다.
2025-08-03 11:12