개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.10 08:57

openssl_pkcs7_verify 관련 질문입니다.

목록
  • 노드장인 17시간 전 2025.08.10 08:57 새글
  • 7
    1
openssl_pkcs7_verify 사용 시 오류와 해결 방법에 대해 질문합니다.

openssl_pkcs7_verify를 사용하여 S/MIME 메시지의 서명 여부를 확인하고자 합니다. 그러나 다음 오류 메시지가 나타나며, 이에 대한 해결 방법을 알고 싶습니다.

* 오류 메시지: openssl_pkcs7_verify(): S/MIME 메시지의 서명이 부정확합니다.
* 오류 원인: 메시지의 서명 알고리즘 또는 키가 올바르지 않습니다.
* 해결 방법: 메시지의 서명 알고리즘 또는 키를 확인하고, 올바른 알고리즘 또는 키를 사용하여 다시 서명하고, openssl_pkcs7_verify를 호출하여 메시지의 서명 여부를 확인합니다.

openssl_pkcs7_verify를 사용하여 S/MIME 메시지의 서명 여부를 확인하는 방법에 대해 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  17시간 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 43,119건 / 9 페이지

검색

게시물 검색