Web services Delphi webservice和OpenSSL支持的SSL/TLS密码

Web services Delphi webservice和OpenSSL支持的SSL/TLS密码,web-services,delphi,ssl,openssl,delphi-xe2,Web Services,Delphi,Ssl,Openssl,Delphi Xe2,我们的Web服务还提供HTTPS连接: FWebBrokerBridge := TIdHTTPWebBrokerBridge.Create(Self); // TIdHTTPWebBrokerBridge = class(TIdCustomHTTPServer), see IdHTTPWebBrokerBridge.pas LIOHandleSSL := TIdServerIOHandlerSSLOpenSSL.Create(FWebBrokerBridge); LIOHandleSSL

我们的Web服务还提供HTTPS连接:

FWebBrokerBridge := TIdHTTPWebBrokerBridge.Create(Self);    // TIdHTTPWebBrokerBridge = class(TIdCustomHTTPServer), see IdHTTPWebBrokerBridge.pas

LIOHandleSSL := TIdServerIOHandlerSSLOpenSSL.Create(FWebBrokerBridge);
LIOHandleSSL.SSLOptions.CertFile     := FHTTPSCertificate;
LIOHandleSSL.SSLOptions.RootCertFile := FHTTPSRootCertificate;
LIOHandleSSL.SSLOptions.KeyFile      := FHTTPSPrivateKey;
LIOHandleSSL.OnGetPassword := HTTPSIOHandlerSSLOpenSSLGetPassword;
FWebBrokerBridge.IOHandler := LIOHandleSSL;
正如代码所示,我们在开发人员的机器上安装了OpenSSL版本1.02d

我们的一个客户机运行我们的Web服务,并使用OpenSSL,假设版本相同。 他们现在将更改防火墙,并开始使用使用以下密码的证书:

TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
他们的问题,也就是我的问题是:Web服务是否会有问题

我已经用OpenSSL ciphers-v verbose语句检查了OpenSSL支持哪些密码。 这给了我一个长长的名单,上面有他们的密码名称。 他们列出了OpenSSL使用的名称与相关规范中的套件名称之间的对应关系。 讽刺的是:不要使用FireFox,它会抱怨他们使用了旧的TLS版本

他们翻译成:

TLS_RSA_WITH_AES_128_CBC_SHA     -> AES128-SHA (from the 'AES ciphersuites from RFC3268, extending TLS v1.0')
TLS_RSA_WITH_AES_256_CBC_SHA     -> AES256-SHA (idem)
TLS_RSA_WITH_AES_128_CBC_SHA256  -> AES128-SHA256 (from the 'TLS v1.2 cipher suites')
TLS_RSA_WITH_AES_256_CBC_SHA256  -> AES256-SHA256 (idem)
这里似乎适用的是他们的评论。应该注意的是,一些密码套件名称不包括使用的身份验证,例如DES-CBC3-SHA。在这些情况下,将使用RSA身份验证

这些翻译后的名称在我生成的列表中:

...
AES128-SHA              SSLv3 Kx=RSA        Au=RSA  Enc=AES(128)  Mac=SHA1
...
AES256-SHA              SSLv3 Kx=RSA        Au=RSA  Enc=AES(256)  Mac=SHA1
...
AES128-SHA256           TLSv1.2 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA256   
...
AES256-SHA256           TLSv1.2 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA256
...
以下结论正确吗

OpenSSL版本支持他们将使用的密码,这与我的Delphi程序无关。也不需要重新编译。Web服务将正常工作


注意:我怀疑这个问题是否在这里合适的位置也是因为,但由于这可能与更多的程序员有关,我决定把它放在这里。

他们的证书是否真的与他们或你的防火墙规则有关?@mjn问得好。我不知道。我假设在最坏的情况下,他们也会进行https:检查,即用来自防火墙设备的证书替换外部证书。