2012-02-04 63 views
7

Tôi có chứng chỉ CA của cơ sở dữ liệu mysql mà tôi đang cố gắng kết nối (đó là trên rds của Amazon). Tôi không thể tìm thấy một ví dụ tốt về cách kết nối với cơ sở dữ liệu mysql bằng cách sử dụng hàm mysql_connect() của php và sử dụng chứng chỉ ca (được lưu trữ tại /home/username/mysql_ca_cert.pem) để kết nối.Làm thế nào để sử dụng thiết lập MYSQL_CLIENT_SSL với mysql_connect() trong PHP?

Có ai có thể giúp tôi bằng một ví dụ đơn giản không?

+1

Tôi muốn khuyên chống lại bằng cách sử dụng mysql_ * chức năng, sử dụng mysqli hay PDO để thay thế. – GordonM

+0

@GordonM, có gì sai với hàm mysql_ *? – eric

+0

Chúng quá lỗi thời, chúng chưa được cập nhật để tận dụng các tính năng được cung cấp bởi mysql 5 và chúng không được dùng nữa trong tất cả trừ tên. – GordonM

Trả lời

0

này sẽ kết nối bằng cách sử dụng các máy chủ ssl cert những năm 2048 là chìa khóa

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

'2048' =' MYSQL_CLIENT_SSL'? – Shoe

+1

@Mark Allen, làm cách nào để kết nối với tệp ssl cert của tôi tại /home/username/mysql_ca_cert.pem? – eric

+0

Hãy xem tin nhắn cuối cùng. 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'); 

và sau đó dĩ nhiên

$db->close(); 

hy vọng sẽ giúp :)

1

mysql_connect() bị khấu hao và có khả năng tấn công cao. Để sử dụng nó là cuối cùng trong ngu ngốc

<?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

Các vấn đề liên quan