我有一个现有的DataSnap服务器(Windows服务)在HTTP上正常运行,我现在想要添加HTTPS作为附加协议。我已经获得并安装了SSL证书并生成了证书文件(.crt)和私钥文件(.key)。作为测试,当使用Delphi XE2 DataSnap Server向导并勾选“HTTPS”来获取证书页面时,我可以引用这两个文件并单击“测试”按钮,该按钮成功。我添加了一个额外的TDSHTTPService组件并将其链接到TDSCertFiles组件。在我的服务启动事件中,我在启动DSServer之前,在DSCertFiles.CertFile和DSCertFiles.KeyFile属性中设置了2个证书文件的路径。尝试启动服务时,我收到错误:
无法加载证书。错误:140AD002:SSL 例程:SSL_CTX_use_certificate_file:system lib
我有什么遗失的吗?
答案 0 :(得分:5)
XE2和XE3中存在一个众所周知的错误。
我发现了这种解决方法。
设置TDSCert属性, 启动DSHTTPServer之后,请调用此方法:
DSCertFiles2.SetServerProperties(DSHTTPService2.HttpServer); //WORK AROUND
答案 1 :(得分:1)
错误代码0x140AD002
表示SSL_CTX_use_certificate_file()
无法打开该文件。