我使用的是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?