0
Indy TIdHTTPを使用して、クライアント側SSL証明書を使用してhttpsページを取得しようとしています。Indy TIdHTTPクライアント側SSL証明書付きのhttpsページを取得
コードが
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証明書は受け入れられません。
クライアント証明書でURLを取得するにはどうすればよいですか?
https://www.scriptjunkie.us/auth/verifycert
サイトでは、無料のクライアント側でSSLの認証を受けています。 FPCは3.0.2で、インディはここ10.6.2.0
のですか? 'Get'は例外を起こしていますか?もしそうなら、それは何を言いますか?なぜ最初にクライアント証明書を使用していますか?サーバーは認証されたクライアントにのみ応答しますか?標準のWebブラウザでサーバにアクセスできますか? –
@Remy Lebeauはい、問題は実際のものです。私は最後のインディーバージョン(devのsvnから)とそれに直面する。例外は発生しません。サーバーは許可されていないコンテンツを返します。 FireFoxを使用して証明書をインポートすると、すべて正常に動作しています(私の質問のリンクを参照) –
何ですか? 'Get'がエラーを起こしていなければ、HTTPもSSLも失敗していません。あなたはこれがSSLの問題だと思うのですが、単にユーザー認証の問題ではないと思いますか?サーバーは、HTTP認証またはHTML Webフォーム認証のいずれかを使用して、クライアントにログインする必要がありますか? –