所以我今天剛剛安裝XAMPP,我注意到的index.php了檢查,看它是否是通過HTTPS訪問。在此之前,我認爲爲了使用SSL安全性,您需要證書,但現在我懷疑了。Delphi應用程序的SSL證書 - 是否需要啓用安全性?
在這一點上(請你指正,這是這個問題的整點!),我自己的研究使我相信,只有證書提供有關您正在訪問位置信息。如果沒有找到證書,則由客戶確定他/她是否信任該連接。
的XAMPP索引頁包含此檢查:
<?php
if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) {
$uri = 'https://';
} else {
$uri = 'http://';
}
$uri .= $_SERVER['HTTP_HOST'];
header('Location: '.$uri.'/xampp/');
exit;
?>
好了,所以我通過https://localhost
訪問我的本地主機,而Firefox的「你信任這個網站嗎?」頁面出現了(問題是:我能相信自己嗎?))。
在那之後,我創建了自己的小test.php
,用下面的代碼:
<?php
echo "Hi. \n";
if(isset($_POST['firstname']) && isset($_POST['lastname']))
{
echo "Your Firstname is ".$_POST['firstname']." and your Lastname is ".$_POST['lastname'];
echo "\r\n\r\n";
if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) {
echo "You are using SSL, arentcha? :)";
} else {
echo "Hmm.. No SSL!";
}
}
?>
我然後創建一個連接到http://localhost/test.php
Delphi應用程序,並https://localhost/test.php
,藏漢作爲http://jeffijoe.com/test.php
和https://jeffijoe.com/test.php
與TIdHTTP
控制(併爲SSL,我迷上了TIdSSLIOHandlerSocketOpenSSL
到TIdHTTP
的IOHandler
財產
下面是該代碼:
Var
Src : TStringlist;
location: String;
begin
if RadioButton1.Checked then
location := 'localhost' else location := 'jeffijoe.com';
if RadioButton3.Checked then
Protocol := 'http' else Protocol := 'https';
Memo1.Clear;
Src := TStringlist.Create;
try
Src.Add('firstname=Jeff&lastname=Hansen');
Memo1.Text := IdHTTP1.Post(Protocol+'://'+location+'/test.php',Src);
finally
Src.Free;
end;
end;
下面是結果:
HTTP://localhost/test.php - 預期輸出
的https://localhost/test.php - 預期輸出(它aknowlegdes我使用HTTPS)
http://jeffijoe.com/test.php - 預期輸出
https://jeffijoe.com/test.php - 失敗! 404沒有找到!
我jeffijoe.com託管在常規共享託管帳戶。
所以 - 問題是:是HTTPS爲localhost真正的「安全」?那麼當HTTPS連接到Jeffijoe.com位置失敗時,如何在本地主機上執行此操作?如何證書?他們需要嗎?是否可以設置安全連接而不必購買高估的證書?
簡單而重要! +1 – Jeff
我的Delphi應用程序將連接到** my **主機或客戶端自己的主機,因此整個信任問題不成問題。我只需要確保連接,以防客戶端有一些他/她不知道的好奇眼睛軟件。我怎樣才能做到這一點? – Jeff
@Jeff我想說的是,在您的用例中,您只需要一個自簽名證書,但也可以查看http://www.cacert.org/。 – fvu