
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