idHttpServer证书问题

22222bbb 2018-04-11 11:53:48
idHttpServer证书是如何生成的啊,我是用idHttpServer作为一个服务器,客户端采用IdHttp来向他请求一些数据,想使用SSL,但不知道如何操作,哪位有做过啊,感谢不尽1
...全文
501 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_41437357 2019-05-22
  • 打赏
  • 举报
回复
我做了也不成功。先到网上购买了SSL,要求转为pem格式,然后添加了idhttpserver1和IdServerIOHandlerSSLOpenSSL1,启动为
procedure TForm7.Button1Click(Sender: TObject);
var
appdir:string;
begin
// SSL stuff
with idServerIOHandlerSSLOpenSSL1.SSLOptions do
begin
Method := sslvSSLv23;
Mode := sslmServer;
appdir := ExtractFilePath(Application.ExeName);
RootCertFile := appdir + 'cert\CAChs.pem';
CertFile := AppDir + 'cert\xhclub.pem';
KeyFile := AppDir + 'cert\xhkey.pem';
VerifyDirs := AppDir + 'cert\';

end;
idHttpserver1.IOHandler := idServerIOHandlerSSLOpenSSL1;
// END SSL stuff
try
IdHTTPServer1.Bindings.Clear;
IdHTTPServer1.Bindings.Add.Port:= 443;
IdHTTPServer1.Bindings.Add.IP := 'XX.XX.XX.XX';
DataModule1.SQLConnection1.Connected := true;
Memo1.Lines.Add('启动');
except
Memo1.Lines.Add('失败');
exit;
end;

IdHTTPServer1.Active := True;
end;
然后开发客户端结果出现错误提示。
error connect with SSL
Eof was observed that violates the protocol
客户端是这样,又加了openssl的那两个读证书的DLL文件。那位高手邦看看那出问题了
procedure TForm1.Button1Click(Sender: TObject);
var
vIdHTTP: TIdHTTP;
vSSL:TIdSSLIOHandlerSocketOpenSSL;
vMemory: TMemoryStream;
c:string;
begin
try
vIdHTTP := TIdHTTP.Create(nil);
vIdHTTP.Request.ContentType :='application/x-www-form-urlencoded';
vSSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
vMemory := TMemoryStream.Create;
try
vIdHTTP.IOHandler := vSSL;
vSSL.SSLOptions.Method := sslvSSLv23;
vSSL.SSLOptions.Mode := sslmBoth;
c := vIdHTTP.get('https://www.xxxxlub/aaaaa');
memo1.Text := UTF8decode(c);
finally
vMemory.Free;
vSSL.Free;
vIdHTTP.Free;
end;
except
//showmessage('ffff');
end;
end;


5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧