개발자 Q&A

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

2025.04.22 10:35

stream_socket_enable_crypto 함수 사용에 대한 질문

목록
  • JWT연구가 1일 전 2025.04.22 10:35
  • 7
    1
저는 PHP의 stream_socket_enable_crypto 함수를 사용하여 SSL/TLS 연결을 설정하려고 합니다.
하지만 함수의 사용법이 조금 헷갈립니다.
stream_socket_enable_crypto 함수의 두 번째 인자로 crypto_type을 설정할 때, STREAM_CRYPTO_METHOD_TLS_CLIENT와 STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT의 차이점을 알고 싶습니다.
이 두 가지 방법의 차이점은 무엇이며, 각각의 사용법은 어떻게 다른가요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    stream_socket_enable_crypto 함수의 두 번째 인자로 crypto_type을 설정할 때, STREAM_CRYPTO_METHOD_TLS_CLIENT와 STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT의 차이점은 TLS 프로토콜 버전입니다.

    STREAM_CRYPTO_METHOD_TLS_CLIENT는 TLS 1.0, 1.1, 1.2 버전을 모두 지원합니다. 반면 STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT는เฉพาะ TLS 1.2 버전만 지원합니다.

    따라서, 만약 TLS 1.2 버전만 사용하고자 한다면 STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT를 사용하는 것이 좋습니다. 하지만 TLS 1.0, 1.1 버전도 사용하고자 한다면 STREAM_CRYPTO_METHOD_TLS_CLIENT를 사용하는 것이 좋습니다.

    사용법의 차이점은 다음과 같습니다.

    - STREAM_CRYPTO_METHOD_TLS_CLIENT를 사용할 때는, crypto_type에 STREAM_CRYPTO_METHOD_TLS_CLIENT를 지정합니다.
    - STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT를 사용할 때는, crypto_type에 STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT를 지정합니다.

    예제를 통해 살펴보겠습니다.

    #hostingforum.kr
    php
    
    $context = stream_context_create([
    
        'ssl' => [
    
            'crypto_method' => STREAM_CRYPTO_METHOD_TLS_CLIENT,
    
        ],
    
    ]);
    
    
    
    $fp = stream_socket_client('ssl://example.com:443', $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);
    
    
    
    if (!$fp) {
    
        echo "Error: $errstr ($errno)n";
    
    } else {
    
        echo "Connected to $hostn";
    
        fclose($fp);
    
    }
    
    


    #hostingforum.kr
    php
    
    $context = stream_context_create([
    
        'ssl' => [
    
            'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
    
        ],
    
    ]);
    
    
    
    $fp = stream_socket_client('ssl://example.com:443', $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);
    
    
    
    if (!$fp) {
    
        echo "Error: $errstr ($errno)n";
    
    } else {
    
        echo "Connected to $hostn";
    
        fclose($fp);
    
    }
    
    


    위의 예제에서, 두 번째 인자로 crypto_type을 설정할 때 STREAM_CRYPTO_METHOD_TLS_CLIENT와 STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT의 차이점을 살펴볼 수 있습니다.

    2025-04-22 10:36

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

검색

게시물 검색