Edit report at http://bugs.php.net/bug.php?id=41778&edit=1
ID: 41778
Comment by: extramobile at gmail dot com
Reported by: mail at tobias-wassermann dot de
Summary: Always get the SSL connection error
Status: No Feedback
Type: Bug
Package: MySQLi related
Operating System: Windows XP
PHP Version: 5.2.5
Assigned To: andrey
New Comment:
When i connect like this:
$mysqli -> ssl_set('client-key.pem', 'client-cert.pem', 'ca-cert.pem',
null, null );
(..)
$mysqli -> real_connect( 'localhost', 'ssluser', 'sslpass', 'apps',
3306, null, MYSQLI_CLIENT_SSL );
SHOW VARIABLES LIKE "%SSL%";
returns nothing because of:
Warning: mysqli::real_connect() [function.mysqli-real-connect]:
(HY000/2026): SSL connection error in D:\web\xampp\htdocs\init\init.php
on line 70
Warning: mysqli::query() [function.mysqli-query]: invalid object or
resource mysqli in D:\web\xampp\htdocs\init\init.php on line 72
But when I connect:
$mysqli -> ssl_set('client-key.pem', 'client-cert.pem', 'ca-cert.pem'
);
it gives me:
Warning: mysqli::ssl_set() expects exactly 5 parameters, 3 given in
D:\web\xampp\htdocs\init\init.php on line 59
Array ( [Variable_name] => have_openssl [Value] => YES )
Array ( [Variable_name] => have_ssl [Value] => YES )
Array ( [Variable_name] => ssl_ca [Value] => ca-cert.pem )
Array ( [Variable_name] => ssl_capath [Value] => )
Array ( [Variable_name] => ssl_cert [Value] => server-cert.pem )
Array ( [Variable_name] => ssl_cipher [Value] => )
Array ( [Variable_name] => ssl_key [Value] => server-key.pem )
i have xampp apache friends 1.6.4
I connect via CMD by
mysql --ssl-ca=ca-cert.pem --ssl-cert=client-cert.pem
--ssl-key=client-key.pem -ussluser -p
and SHOW VARIABLES LIKE "%SSL%";
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| have_openssl | YES |
| have_ssl | YES |
| ssl_ca | ca-cert.pem |
| ssl_capath | |
| ssl_cert | server-cert.pem |
| ssl_cipher | |
| ssl_key | server-key.pem |
+---------------+-----------------+
7 rows in set (0.00 sec)
Previous Comments:
------------------------------------------------------------------------
[2008-11-10 01:00:04] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
------------------------------------------------------------------------
[2008-11-02 12:47:00] [email protected]
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://windows.php.net/snapshots/
------------------------------------------------------------------------
[2008-04-22 20:01:24] mail at tobias-wassermann dot de
Hi,
reconstructed the case again - sorry for the delay - with the following
code:
<?php
error_reporting(E_ALL);
ini_set("display_errors", "1");
$conn = mysqli_init();
$conn->ssl_set("C:/proj/test/test.crt", "C:/proj/test/ca.crt",
"C:/proj/test/ca2.crt", NULL, NULL);
$conn->real_connect("www.iba-ag.com", "user", "pass", "db", 3306, NULL,
MYSQLI_CLIENT_SSL);
echo $conn->errno;
$res = $conn->query("SELECT * FROM catalog");
echo " - COUNT: {$res->num_rows}";
?>
The big BUT: Everytime I connect, I got a connection and the correct
count of the SELECT - it works if the ssl-files exists or not exists. So
it seems to be that never ever a ssl-connection will be established now
- whats the problem?
I tried this with a 5.2.3 PHP on Windows and a 5.2.5 PHP on Linux - in
both cases with enabled OpenSSL-support
------------------------------------------------------------------------
[2008-01-23 13:22:27] [email protected]
Could you please try to use the full path instead of just giving the
file name? Thanks.
I can't get that error message.
------------------------------------------------------------------------
[2007-06-22 08:37:23] mail at tobias-wassermann dot de
Description:
------------
If I want to connect via SSL to my MySQL-Server, mysqli_real_connect
always returns this error:
Warning: mysqli::real_connect() [function.mysqli-real-connect]:
(HY000/2026): SSL connection error in
C:\proj\wampp\htdocs\test\db\mysql_ssl.php on line 7
I use mysqli_init(), to init the mysqli-object and then use ssl_set() to
set the SSL-stuff and then real_connect().
A connect with the mysql-command-line client and the ssl-ca-option works
perfect - i get a ssl encrypted connection.
Reproduce code:
---------------
Start MySQL-Server with:
mysqld-nt.exe --ssl --ssl-ca=ca.crt --ssl-cert=server.crt
--ssl-key=server.pem <other params>
[The key is not secured by any password or such things]
Use the MySQL-Client from another machine to connect via ssl:
mysql.exe -u test -h server --ssl-ca=ca.crt
Check if SSL works with command line client:
mysql> SHOW STATUS LIKE 'Ssl_cipher';
+---------------+--------------------+
| Variable_name | Value |
+---------------+--------------------+
| Ssl_cipher | DHE-RSA-AES256-SHA |
+---------------+--------------------+
1 row in set (0.02 sec)
It works. Now my PHP code:
<html>
<body>
<?php
$conn = mysqli_init();
$conn->ssl_set(NULL, NULL, "ca.crt", NULL, NULL);
$conn->real_connect("server", "root", NULL, "iba", 3306, NULL,
MYSQLI_CLIENT_SSL);
?>
</body>
</html>
Expected result:
----------------
The real_connect()-call should connect via SSL to the MySQL-Server.
Actual result:
--------------
real_connect() doesn't connect, returns error message:
Warning: mysqli::real_connect() [function.mysqli-real-connect]:
(HY000/2026): SSL connection error in
C:\proj\wampp\htdocs\test\db\mysql_ssl.php on line 7
I know, HY000/2026 is a MySQL error - but the command line connect with
same user and same CA-Certificate works fine. I tested it also on other
machines.
The error occurs if the db-server is another machine as the webserver -
and also occurs if it's the same pc. The problem also exists if i
provide a client-certificate and key to the ssl_set()-function
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=41778&edit=1