delphi 如何在DataSnap中实现HTTPS?

h4cxqtbf  于 2022-11-04  发布在  其他
关注(0)|答案(2)|浏览(313)

我尝试在C++ Builder中创建HTTPS安全的DataSnap WebBroker应用程序,但无法完成。首先,我使用以下命令行创建了自签名OpenSSL证书:

openssl请求-x509 -sha 256-新密钥rsa:2048 -密钥输出密钥.pem -输出证书.pem -天数365

在创建新的DataSnap WebBroker(VCL)应用程序时,我在向导中检查了HTTPS并选择了证书文件、密钥文件和密码。我在向导中单击了“测试”,一切正常(测试通过)。运行应用程序时,我启动服务器,没有错误,但在Web浏览器中测试时,我得到:
网址:https://localhost:8080/
Chrome浏览器:SSL版本或密码不匹配错误
Firefox:SSL错误,没有密码重叠
当我创建一个单独的REST(VCL)客户端应用程序并发出请求时,我收到以下错误:REST请求失败:获取服务器证书时出错
为什么会发生这种情况,以及如何修复它,以便我可以有一个安全的(HTTPS)连接?谢谢!

vybvopom

vybvopom1#

如果其他人也会有类似的问题:我通过在IIS中创建自签名证书,然后将其绑定到IIS内部的HTTPS协议来解决此问题。

ozxc1zmp

ozxc1zmp2#

10.2 Tokyo中使用REST客户端库时,您当然可以使用TLS 1.2。

RESTClient.SecureProtocols := [THTTPSecureProtocol.TLS12];

但是,当我使用以下URL从Chrome访问示例方法时,从向导中使用新的VCL表单DataSnap服务器:

https://localhost:62032/datasnap/rest/TServerMethods1/ReverseString/ABC

我得到了Chrome错误ERR_SSL_VERSION_OR_CIPHER_MISMATCH,正如你所看到的。
我们还有用于FireMonkey跨平台开发的 Delphi 10.4,因此我使用它创建了一个VCL表单DataSnap服务器。
使用上面的URL时,我在IDE中得到以下错误:

First chance exception at $77C2C3A2. Exception class EIdOSSLUnderlyingCryptoError with message
'Error accepting connection with SSL.
error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version'.
Process Project21.exe (17080)

10.4 SydneyTDSCertFiles组件添加了一个SSLVersion属性,但默认为 sslvTLSv1

将其更改为 sslvTLSv1_2 可允许上述测试URL在ChromeEdge上使用HTTPS正常工作。

相关问题