Tôi đang cố gắng tạo một máy chủ socket sử dụng stream_socket_server().Máy chủ socket PHP sử dụng ADH. Làm sao?
Kết nối bình thường hoạt động tốt, nhưng tôi muốn tạo một máy chủ mã hóa kết nối mà không cần chứng chỉ. Tôi biết rằng điều này có thể được thực hiện với mật mã ADH, và có, tôi biết nó về mặt lý thuyết kém an toàn hơn với một chứng chỉ ...
Lý do tôi làm cho máy chủ này ở nơi đầu tiên là giả lập một máy chủ khác mà khách hàng kết nối đến (trên this protocol, nếu bạn đang tự hỏi).
Máy khách được định cấu hình để yêu cầu chứng chỉ trước và dự phòng ADH - Tôi đã thử nghiệm với điều thực và kết nối mà không gặp sự cố, do đó sự cố xảy ra với máy chủ socket.
Mọi thứ tôi đã thử cho đến nay đã dẫn đến lỗi "lỗi bắt tay".
Một số cấu hình tôi đã cố gắng:
<?php
$server = stream_socket_server(
"tls://127.0.0.1:6667",
$errorno,
$errstr,
STREAM_SERVER_BIND | STREAM_SERVER_LISTEN,
stream_context_create(
array('ssl' => array('ciphers' => 'ADH'))
)
);
?>
<?php
$server = stream_socket_server(
"tls://127.0.0.1:6667",
$errorno,
$errstr,
STREAM_SERVER_BIND | STREAM_SERVER_LISTEN,
stream_context_create(
array('ssl' => array('ciphers' => '-COMPLEMENTOFALL ADH'))
)
);
?>
Tôi cũng đã cố gắng để điều chỉnh cho khách hàng vô điều kiện sử dụng ADH (như với ví dụ thứ hai ở trên), chỉ vì lợi ích của thử nghiệm, nhưng điều đó quá không thành công.
Điều này xảy ra với mọi phiên bản PHP mà tôi đã thử, phiên bản mới nhất trong số đó là 5.5.0.
Bất kỳ ý tưởng nào?
thấy điều này có thể được giúp đỡ bạn http://christophh.net/2012/ 07/24/php-socket-programming/ – krishna
@krishna Bài viết đó thậm chí không đề cập đến mã hóa, và cho rằng kết nối không được mã hóa hoạt động tốt, nó không giúp gì cả. –