Сервер Delphi XE2 DataSnap - HTTPS «Не удалось загрузить сертификат» - PullRequest
3 голосов
/ 26 января 2012

У меня есть существующий сервер 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: системная библиотека

Что-то мне не хватает?

Ответы [ 2 ]

5 голосов
/ 27 декабря 2012

В XE2 и XE3 есть хорошо известная ошибка.

Я нашел этот обходной путь.

После установите свойства TDSCert и до запустите DSHTTPServer, вызовите этот метод:

DSCertFiles2.SetServerProperties(DSHTTPService2.HttpServer); //WORK AROUND
1 голос
/ 26 января 2012

Код ошибки 0x140AD002 означает, что SSL_CTX_use_certificate_file() не удалось открыть файл.

...