我使用的是TIdHTTPServer组件,至今工作正常,但使用此代码单个TIdHTTPServer组件可以同时处理http和https请求吗?
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请求,当我加入SSL支持,如果我发送一个HTTP请求则抛出该异常
Error accepting connection with SSL. error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request
的问题是:我可以使用单一TIdHTTPServer组件来处理HTTP和HTTPS请求?如果答案是肯定的,可以这样做?如果答案为否,我必须创建两个TIdHTTPServer实例,一个用于http,另一个用于https?