ADODB kitaplığı aracılığıyla MySQL SSL bağlantısı

1 Cevap php

I have a MySQL database hosted on a remote server and it is enabled to accept only SSL connection. When I connect to this database using Java JDBC with SSL options, it works fine. There is a special jdbc string that I use for JDBC connection as below "jdbc:mysql://:/?verifyServerCertificate=false&useSSL=true&requireSSL=true"

Ben ADODB kitaplığı kullanarak PHP ile benzer bir bağlantı kullanmanız gerekir.

Ben ADODB mysqli uzantısı kullanarak ilgili web üzerinden birkaç referansları bulundu


(Referans http://mbrisby.blogspot.com/2008/06/adodb-php-mysql-ssl.html)

Bir CA sertifikası oluşturduktan sonra, aşağıdaki madde etc / my.cnf veya bağlantı kullanıcının ~ / / [client] kıta olduğundan emin olun (biz / için / ca-cert.pem at / yol söyleyeceğim) . istemci ana my.cnf:

ssl-ca = / yol / / ca-cert.pem

Sonra aşağıdaki PHP programı deneyin:

// these are part of the AdoDB library require '/path/to/adodb-exceptions.inc.php'; require '/path/to/adodb.inc.php';

/* * I got the '2048' from running * printf( "%d\n", MYSQLI_CLIENT_SSL ) * in a PHP program (w/ the mysqli extention installed) */ $dsn = 'mysqli://ssluser:sslpass@dbhost/test?clientflags=2048';

$ Dbh = NewADOConnection ($ dsn);

$sql = "show status like 'ssl_cipher'"; $res =& $dbh->Execute($sql); print_r( $res->fields ); $res->Close();

$dbh->Close();



Ben bu mysql veritabanı için farklı bir makineden bağlantı ediyorsam ben sertifika bilgi mi istiyorsunuz?

PHP için kullanılabilir JDBC dize benzer bir şey var mı?

Birisi bir çalışma örneği sonrası eğer çok iyi olurdu

Teşekkür ederim

1 Cevap

Ben SSL ile MySQL bağlayan hiçbir deneyimi var. Bağlarken MySQL sürücüsü flags (MYSQL_CLIENT_SSL) kullanabilirsiniz olduğunu.

ADODB kullanılarak bağlanırken bunu ayarlamak için, sen benim bağlantı şablonu deneyebilirsiniz:

$options = '';
if ($driver == 'mysql' OR $driver == 'mysqli')
{
  if ($params['pconnect'] === TRUE)
  {
    $options .= '?persist';
  }
  $flags = MYSQL_CLIENT_COMPRESS;
  if ($params['ssl'] === TRUE)
  {
    $flags = $flags | MYSQL_CLIENT_SSL;
  }
  $options .= (empty($options)?'?':'&')."clientflags=$flags";
}

$dsn = "{$driver}://{$username}:{$password}@{$hostname}/{$database}{$options}";

$adodb =& ADONewConnection($dsn);

if ($adodb)
{
  //set fetch mode
  $adodb->SetFetchMode(ADODB_FETCH_BOTH);

  //character set
  if ($driver == 'mysql' OR $driver == 'mysqli')
  {
    if (isset($params['char_set']) AND $params['char_set']
        AND isset($params['dbcollat']) AND $params['dbcollat'])
    {
      $charset    = $adodb->qstr($params['char_set']);
      $collation  = $adodb->qstr($params['dbcollat']);
      $adodb->Execute("SET NAMES $charset COLLATE $collation");
    }
  }
  if ($debug)
  {
    @ob_start();
    $adodb->debug = TRUE;
  }
}