我正在使用 TIdHTTPServer 组件,到目前为止工作正常,但是当我使用此代码添加 SSL 支持时
SSLHandler:= TIdServerIOHandlerSSLOpenSSL.Create(nil);
SSLHandler.SSLOptions.CertFile := 'foo.pem';
SSLHandler.SSLOptions.KeyFile := 'foo.pem';
SSLHandler.SSLOptions.RootCertFile := 'foo.pem';
SSLHandler.SSLOptions.Method := sslvSSLv23;
SSLHandler.SSLOptions.Mode := sslmServer;
SSLHandler.SSLOptions.VerifyDepth := 1;
SSLHandler.SSLOptions.VerifyMode := [sslvrfPeer,sslvrfFailIfNoPeerCert,sslvrfClientOnce];
idHttpServer1.IOHandler := SSLHandler;
IdHTTPServer1.Bindings.Add.Port := 80;
IdHTTPServer1.Bindings.Add.Port := 443;
IdHTTPServer1.Active := True;
服务器仅处理 https 请求,如果我发送 http 请求,则会引发此异常
Error accepting connection with SSL. error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request
问题是:我可以使用单个 TIdHTTPServer 组件来处理 http 和 https 请求吗?如果答案是肯定的,如何做到这一点?如果答案是否定的,我必须创建两个 TIdHTTPServer 实例,一个用于 http,另一个用于 https?