2012-02-04 10 views
7

Posiadam certyfikat CA bazy danych mysql, z którą próbuję się połączyć (jest na Amazon rds). Nie mogę znaleźć dobrego przykładu, jak połączyć się z bazą danych mysql za pomocą funkcji mysql_connect() php i użyć tego certyfikatu ca (przechowywanego w /home/username/mysql_ca_cert.pem) do połączenia.Jak używać ustawienia MYSQL_CLIENT_SSL z mysql_connect() w PHP?

Czy ktoś mógłby mi pomóc z prostym przykładem?

+1

Radzę przed użyciem mysql_ * funkcje, wykorzystanie mysqli lub PDO zamiast. – GordonM

+0

@GordonM, co jest nie tak z funkcjami mysql_ *? – eric

+0

Są one bardzo nieaktualne, nie zostały zaktualizowane, aby skorzystać z funkcji oferowanych przez mysql 5, i są nieaktualne we wszystkich poza nazwą. – GordonM

Odpowiedz

0

To będzie łączyć za pomocą SSL Serwery CERT 2048 jest kluczem

$link=mysql_connect(host, user, password,true,2048); 
+2

'2048' =' MYSQL_CLIENT_SSL'? – Shoe

+1

@ Mark Allen, jak mogę połączyć to z moim plikiem certyfikatu ssl znajdującym się w /home/username/mysql_ca_cert.pem? – eric

+0

Spójrz na ostatnią wiadomość. http://stackoverflow.com/questions/1778977/encrypting-mysql-traffic-in-scripts –

-1
$db = mysqlii_init(); 
$db->ssl_set('server-key.pem','server-cert.pem', 'cacert.pem', NULL, NULL); 
$db->real_connect('localhost','root','','mydb'); 

a potem oczywiście

$db->close(); 

mam nadzieję, że pomaga :)

1

mysql_connect() jest amortyzowany i wysoce hackable. Aby go użyć jest ostatecznym w głupi

<?php 
$pdo = new PDO('mysql:host=ip;dbname=db', 'user', 'pass', array(
    PDO::MYSQL_ATTR_SSL_KEY =>'/etc/mysql/ssl/client-key.pem', 
    PDO::MYSQL_ATTR_SSL_CERT=>'/etc/mysql/ssl/client-cert.pem', 
    PDO::MYSQL_ATTR_SSL_CA =>'/etc/mysql/ssl/ca-cert.pem' 
    ) 
); 
$statement = $pdo->query("SHOW TABLES;"); 
$row = $statement->fetch(PDO::FETCH_ASSOC); 
echo htmlentities($row['_message']); 
?> 

http://www.php.net/manual/en/book.pdo.php

Powiązane problemy