0
我試圖通過Indy TIdHTTP獲得客戶端SSL證書的https頁面。Indy TIdHTTP獲得https客戶端SSL證書的頁面
代碼是
var IdHTTP1 : TIdHTTP;
IdSSLIOHandlerSocket : TIdSSLIOHandlerSocketOpenSSL;
begin
try
IdHTTP1 := TIdHTTP.Create(self);
IdHTTP1.Request.BasicAuthentication := False;
IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0';
IdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(IdHTTP1);
IdSSLIOHandlerSocket.SSLOptions.CertFile := 'cert.pem';
IdSSLIOHandlerSocket.SSLOptions.Method := sslvTLSv1_2;
IdSSLIOHandlerSocket.SSLOptions.Mode:= sslmUnassigned;
IdHTTP1.IOHandler := IdSSLIOHandlerSocket;
writeln(IdHTTP1.Get('https://www.scriptjunkie.us/auth/verifycert'));
finally
IdSSLIOHandlerSocket.Free;
IdHTTP1.Free;
end;
Get
不驗證。客戶PEM證書不被接受。
如何獲得與客戶端證書的網址?
我已使用https://www.scriptjunkie.us/auth/verifycert
網站,並獲得了免費的客戶端SSL認證。 FPC是3.0.2,印是10.6.2.0
什麼是* *實際問題? 'Get'引發異常嗎?如果是這樣,它說什麼?爲什麼你首先使用客戶端證書?服務器是否只響應經過身份驗證的客戶端?您是否可以使用標準網絡瀏覽器訪問服務器? –
@Remy Lebeau是的,問題是實際的。我用最後一個Indy版本(來自dev svn)面對它。例外情況不會升高,服務器只會返回未經授權的內容。如果我使用FireFox和導入證書 - 一切正常(請參閱我的問題鏈接) –
什麼。如果'Get'沒有引發錯誤,那麼HTTP和SSL都不會失敗。是什麼讓你認爲這是一個SSL問題,而不僅僅是一個用戶身份驗證問題?服務器是否要求客戶端通過HTTP身份驗證或HTML Webform身份驗證進行登錄? –