У меня есть существующий сервер DataSnap (служба Windows), который работает нормально по HTTP, и теперь я хочу добавить HTTPS в качестве дополнительного протокола. Я получил и установил сертификат SSL и сгенерировал файл сертификата (.crt) и файл закрытого ключа (.key). В качестве теста, при использовании мастера Delphi XE2 DataSnap Server и отметке «HTTPS», чтобы получить страницу сертификата, я могу сослаться на 2 файла и нажать кнопку «Тест», которая завершится успешно. Я добавил дополнительный компонент TDSHTTPService и связал его с компонентом TDSCertFiles. В моем событии запуска службы я устанавливаю путь к 2 файлам сертификата перед запуском DSServer в свойствах DSCertFiles.CertFile и DSCertFiles.KeyFile. При попытке запустить сервис я получаю сообщение об ошибке:
Не удалось загрузить сертификат. Ошибка: 140AD002: SSL подпрограммы: SSL_CTX_use_certificate_file: системная библиотека
Что-то мне не хватает?
В XE2 и XE3 есть хорошо известная ошибка.
Я нашел этот обходной путь.
После установите свойства TDSCert и до запустите DSHTTPServer, вызовите этот метод:
DSCertFiles2.SetServerProperties(DSHTTPService2.HttpServer); //WORK AROUND
Код ошибки 0x140AD002 означает, что SSL_CTX_use_certificate_file() не удалось открыть файл.
0x140AD002
SSL_CTX_use_certificate_file()