注:我解決我一直有一個,而同時打字這個問題的問題,我想知道如果我的分辨率連接和SSL實施的正確的順序,也「壞握手」
我在我的sql數據庫連接出現「錯誤的握手」錯誤。它在我嘗試實現最近安裝的ssl時開始。我開始用下面的代碼:
$init =mysqli_init();
$key="path/ftpd-rsa-key.pem";
$cert="path/ftpd-rsa.pem";
$ca="path/cert.pem";
mysqli_ssl_set($init, $key, $cert, $ca, NULL, NULL);
//This line was my original connection script, which was working.
//$connection = mysqli_connect("localhost", "username", "password", "database") or die(mysqli_connection_error());
if(!$connection = mysqli_real_connect($init,"localhost", "username", "password", "database"))
{
die("Connect Error: " . mysqli_connect_error());
}
我嘗試過各種其他的東西,包括PDO,重建阿帕奇,和周圍的SSL證書和密鑰和東西交換。沒有任何工作。最終我試着回到我正在使用的原始代碼,然後執行ssl:
$connection = mysqli_connect("localhost", "username", "password", "database") or die(mysqli_connection_error());
$key="path/ftpd-rsa-key.pem";
$cert="path/ftpd-rsa.pem";
$ca="path/cert.pem";
mysqli_ssl_set($connection, $key, $cert, $ca, NULL, NULL);
而令我驚訝的是,這工作。我的頁面現在看起來完全正常,沒有「錯誤的握手」錯誤。然而,由於我沒有找到任何教程或材料,所以我想知道這是否確實是安全的。 ssl的全部要點是爲了安全,並且以這種方式進行連接,而不需要ssl。那是問題嗎?
此外,有關「錯誤的握手」錯誤以及導致它的原因的任何信息都將非常有用。如果我們可以創建/鏈接指南或其完整解釋及其原因,這對未來的程序員會很有幫助,因爲我使用Google搜索時提出的解決方案包括從服務器的閒置和切換到PDO降級MySQL的。
SSL只能保護PHP和MySQL之間的通信不被竊聽者攔截。當連接到'localhost'上的MySQL服務器時,它完全沒有意義(如果服務器可以通過套接字/命名管道訪問,可能會被忽略)。 – eggyal
這是在我的服務器上。我的密碼也不是密碼,文件的路徑也不是'path /',要清楚。 –
沒有任何區別。 – eggyal