3

HTTP で正常に動作する既存の DataSnap サーバー (Windows サービス) があり、追加のプロトコルとして HTTPS を追加したいと考えています。SSL 証明書を取得してインストールし、証明書ファイル (.crt) と秘密鍵ファイル (.key) を生成しました。テストとして、Delphi XE2 DataSnap サーバー ウィザードを使用し、「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 に答える