-
Notifications
You must be signed in to change notification settings - Fork 85
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Connecting to WSS: Unable to complete SSL/TLS handshake #53
Comments
Take a look at previous issues about ssl. It looks like you're using a self signed certificate? In that case you need to pass SSL context options to the Connector. |
It's working now, thank you.
Follow up question: this only appears to work by using the IP address in the URL. Is there a way to use the host name instead? |
I didn't see the follow up question - reopening... |
@JimmyPruitt - On your follow-up question - do you know if the name is able to be resolved? By default the resolver in Pawl uses |
This error looks correct to me, as wildcard SSL certificates should only work one level below the root domain, perhaps https://stackoverflow.com/questions/2115611/wildcard-ssl-on-sub-subdomain could help here? Other than that, you may also pass the |
Closing this issue - please feel free to comment if your issue is not fixed. |
Since 2017, the way to do it changed, and I think it should now be: require __DIR__ . '/vendor/autoload.php';
$loop = \React\EventLoop\Factory::create();
$connector = new \React\Socket\Connector($loop, [
'timeout' => 20,
'tls' => [ // here we define the SSL Context options (https://www.php.net/manual/en/context.ssl.php)
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
]
]);
$wsClient = new \Ratchet\Client\Connector($loop, $connector);
$wsClient('wss://IP:PORT')->then(function($conn) {
$conn->on('message', function($msg) use ($conn) {
echo "Received: {$msg}\n";
$conn->close();
});
$conn->send('Hello World!');
}, function ($e) {
echo "Could not connect: {$e->getMessage()}\n";
});
$loop->run(); |
I have a Websocket server that is running behind Apache that I'm able to connect to using Chrome, Safari, and Telnet just fine. However, when attempting to connect to that same server from PHP using Pawl, it's throwing an exception during the handshake:
Unable to complete SSL/TLS handshake: stream_socket_enable_crypto(): Peer certificate CN='*.foo.bar' did not match expected CN='local.blah.foo.bar'
.Here's my client code:
The text was updated successfully, but these errors were encountered: