3

我有一个在 HTTP 上运行良好的现有 DataSnap 服务器(Windows 服务),我现在想添加 HTTPS 作为附加协议。我已经获得并安装了 SSL 证书并生成了证书文件 (.crt) 和私钥文件 (.key)。作为测试,当使用 Delphi XE2 DataSnap Server 向导并勾选“HTTPS”以获取证书页面时,我可以引用 2 个文件并单击成功的“测试”按钮。我添加了一个额外的 TDSHTTPService 组件并将其链接到 TDSCertFiles 组件。在我的服务启动事件中,我在启动 DSServer 之前在 DSCertFiles.CertFile 和 DSCertFiles.KeyFile 属性中设置了 2 个证书文件的路径。尝试启动服务时出现错误:

无法加载证书。错误:140AD002:SSL 例程:SSL_CTX_use_certificate_file:系统库

有什么我想念的吗?

4

2 回答 2

5

XE2 和 XE3 中有一个众所周知的错误。

我找到了这个解决方法。

设置了 TDSCert 属性之后,启动 DSHTTPServer 之前,调用这个方法:

DSCertFiles2.SetServerProperties(DSHTTPService2.HttpServer); //WORK AROUND
于 2012-12-27T15:18:22.457 回答
1

错误代码0x140AD002意味着SSL_CTX_use_certificate_file()无法打开文件。

于 2012-01-26T00:19:58.193 回答