繁体   English   中英

如何在 DataSnap 中实现 HTTPS?

[英]How to implement HTTPS in DataSnap?

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

openssl req -x509 -sha256 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365

在创建新的 DataSnap WebBroker (VCL) 应用程序时,我检查了 HTTPS 并在向导中选择了证书文件、密钥文件和密码。 我在向导中单击“测试”,一切正常(测试通过)。 运行应用程序时,我启动服务器时没有错误,但是在 Web 浏览器中测试它时,我得到:

网址: https://localhost:8080/

铬: ERR_SSL_VERSION_OR_CIPHER_MISMATCH

火狐: SSL_ERROR_NO_CYPHER_OVERLAP

当我创建单独的 REST (VCL) 客户端应用程序并发出请求时,我收到以下错误: REST 请求失败:获取服务器证书时出错

为什么会发生这种情况以及如何解决它以便我可以拥有安全 (HTTPS) 连接? 谢谢!

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

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 正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM