HTTPで正常に動作している既存のDataSnapサーバー(Windowsサービス)があり、追加プロトコルとしてHTTPSを追加したいと考えています。 SSL証明書を取得してインストールし、証明書ファイル(.crt)と秘密鍵ファイル(.key)を生成しました。テストとして、Delphi XE2 DataSnap Serverウィザードを使用し、「HTTPS」にチェックを入れて証明書ページを取得すると、2つのファイルを参照し、成功した「テスト」ボタンをクリックすることができます。追加のTDSHTTPServiceコンポーネントを追加し、それをTDSCertFilesコンポーネントにリンクしました。私のサービススタートアップイベントでDSCertFiles.CertFileとDSCertFiles.KeyFileプロパティでDSServerを開始する前に2つの証明書ファイルへのパスを設定しています。サービスを開始しようとすると、私はエラーを取得する:Delphi XE2 DataSnapサーバー - HTTPSで証明書を読み込めませんでした。
Could not load certificate. error:140AD002:SSL routines:SSL_CTX_use_certificate_file:system lib
は、私が欠けているものはありますか?
あなたのコードは、サービスが実際に証明書ファイルを「見る」ことができることを確認しない(それはパスかもしれませんまたは許可の問題)? – mjn
こんにちは、レミーの答えに私のコメントを参照してください - コンポーネントは、設計時に設定されたパス(おそらくバグ?)で証明書を探すようです。 –
ファイルが設計時に定義された場所に配置されるとすぐにエラーが消える場合、バグかどうかを確認できます。それ以外の場合、サービス環境に何か問題があります – mjn