
openssl_pkcs7_verify를 사용하여 S/MIME 메시지의 서명 여부를 확인할 때 오류가 발생하는 경우, 메시지의 서명 알고리즘 또는 키를 확인하고 올바른 알고리즘 또는 키를 사용하여 다시 서명한 후 openssl_pkcs7_verify를 호출하여 메시지의 서명 여부를 확인합니다.
먼저, 메시지의 서명 알고리즘 또는 키를 확인하는 방법을 설명하겠습니다. 메시지의 서명 알고리즘 또는 키를 확인하기 위해서는 openssl_pkcs7_verify의 옵션인 'verify'를 사용합니다. 'verify' 옵션은 메시지의 서명 알고리즘 또는 키를 확인하는 데 사용됩니다.
openssl_pkcs7_verify($message, $cert, $key, $options, $extra_cert_ids);
위의 예제에서, $message는 메시지의 내용, $cert는 인증서, $key는 개인키, $options는 옵션, $extra_cert_ids는 추가 인증서 ID입니다.
다음은 예제입니다.
#hostingforum.kr
php
$message = file_get_contents('message.txt');
$cert = file_get_contents('cert.pem');
$key = file_get_contents('key.pem');
$options = array('verify' => 'purpose');
$extra_cert_ids = array();
$result = openssl_pkcs7_verify($message, $cert, $key, $options, $extra_cert_ids);
if ($result === 1) {
echo "메시지의 서명은 올바릅니다.";
} elseif ($result === 0) {
echo "메시지의 서명은 부정확합니다.";
} else {
echo "메시지의 서명 여부를 확인할 수 없습니다.";
}
위의 예제에서, 'verify' 옵션을 사용하여 메시지의 서명 알고리즘 또는 키를 확인하고, 결과를 출력합니다. 결과가 1이면 메시지의 서명은 올바릅니다. 결과가 0이면 메시지의 서명은 부정확합니다. 결과가 NULL이면 메시지의 서명 여부를 확인할 수 없습니다.
다음으로, 메시지의 서명 알고리즘 또는 키를 올바르게 사용하여 다시 서명하는 방법을 설명하겠습니다. 메시지의 서명 알고리즘 또는 키를 올바르게 사용하여 다시 서명하기 위해서는 openssl_sign 함수를 사용합니다.
openssl_sign($message, $signature, $key, $digest_alg);
위의 예제에서, $message는 메시지의 내용, $signature는 서명, $key는 개인키, $digest_alg는 해시 알고리즘입니다.
다음은 예제입니다.
#hostingforum.kr
php
$message = "메시지의 내용";
$key = file_get_contents('key.pem');
$digest_alg = 'sha256';
$signature = openssl_sign($message, $signature, $key, $digest_alg);
if ($signature === TRUE) {
echo "메시지의 서명이 성공적으로 생성되었습니다.";
} else {
echo "메시지의 서명이 생성되지 않았습니다.";
}
위의 예제에서, openssl_sign 함수를 사용하여 메시지의 서명 알고리즘 또는 키를 올바르게 사용하여 다시 서명하고, 결과를 출력합니다. 결과가 TRUE이면 메시지의 서명이 성공적으로 생성되었습니다. 결과가 FALSE이면 메시지의 서명이 생성되지 않았습니다.
마지막으로, openssl_pkcs7_verify를 호출하여 메시지의 서명 여부를 확인하는 방법을 설명하겠습니다. openssl_pkcs7_verify를 호출하여 메시지의 서명 여부를 확인하기 위해서는 openssl_pkcs7_verify 함수를 사용합니다.
openssl_pkcs7_verify($message, $cert, $key, $options, $extra_cert_ids);
위의 예제에서, $message는 메시지의 내용, $cert는 인증서, $key는 개인키, $options는 옵션, $extra_cert_ids는 추가 인증서 ID입니다.
다음은 예제입니다.
#hostingforum.kr
php
$message = file_get_contents('message.txt');
$cert = file_get_contents('cert.pem');
$key = file_get_contents('key.pem');
$options = array('verify' => 'purpose');
$extra_cert_ids = array();
$result = openssl_pkcs7_verify($message, $cert, $key, $options, $extra_cert_ids);
if ($result === 1) {
echo "메시지의 서명은 올바릅니다.";
} elseif ($result === 0) {
echo "메시지의 서명은 부정확합니다.";
} else {
echo "메시지의 서명 여부를 확인할 수 없습니다.";
}
위의 예제에서, openssl_pkcs7_verify 함수를 호출하여 메시지의 서명 여부를 확인하고, 결과를 출력합니다. 결과가 1이면 메시지의 서명은 올바릅니다. 결과가 0이면 메시지의 서명은 부정확합니다. 결과가 NULL이면 메시지의 서명 여부를 확인할 수 없습니다.
2025-08-10 08:58