Cyber Recovery: TLSプロトコルで証明書の取得に失敗しました

概要: Cyber Recovery 19.17にアップグレードした後、トランスポート層セキュリティ(TLS)プロトコルを有効にするときに証明書を検証する新しいオプションがあります。この記事では、TLSプロトコルを使用して証明書を取得できなかった状況について説明します。

この記事は次に適用されます: この記事は次には適用されません: この記事は、特定の製品に関連付けられていません。 すべての製品パージョンがこの記事に記載されているわけではありません。

現象

Cyber Recovery 19.17にアップグレードした後、トランスポート層セキュリティ(TLS)プロトコルを有効にするときに証明書 を検証する 新しいオプションがあります。証明書を検証すると、Cyber Recovery UIに次のエラーが表示されます。

Mail server certificate is required when enabling TLS.

Cyber RecoveryのTLS証明書エラー

原因

Cyber Recoveryログから、次のエントリーが出力されます。

crcli.log時:

[2024-10-03 11:49:03.273] [DEBUG] [crcli] [restapi_client.go:384 HandleRESTAPIResponse()] : Entering
[2024-10-03 11:49:03.273] [DEBUG] [crcli] [restapi_client.go:392 HandleRESTAPIResponse()] : REST status code :500
[2024-10-03 11:49:03.273] [ERROR] [crcli] [restapi_client.go:401 HandleRESTAPIResponse()] : Failed to retrieve mail server certificate : Failed to connect to mail server: dial tcp: lookup smtp-mail.com: i/o timeout
[2024-10-03 11:49:03.273] [DEBUG] [crcli] [restapi_client.go:402 HandleRESTAPIResponse()] : Exiting
[2024-10-03 11:49:03.273] [ERROR] [crcli] [libcli.go:150 CliErrorExit()] : Failed to retrieve mail server certificate : Failed to connect to mail server: dial tcp: lookup smtp-mail.com: i/o timeout

edge.log:

[2024-10-03 11:48:53.268] [DEBUG] [edge] [restapi_client.go:200 callRestApi()] : Perform request.Post path=https://notifications:9096/irapi/v8/notifications/retrieveEmailCert
[2024-10-03 11:49:03.272] [DEBUG] [edge] [restapi_client.go:209 callRestApi()] : status = 500 Internal Server Error
[2024-10-03 11:49:03.272] [DEBUG] [edge] [restapi_client.go:410 GetCRResponse()] : Entering
[2024-10-03 11:49:03.272] [DEBUG] [edge] [restapi_client.go:417 GetCRResponse()] : Exiting
[2024-10-03 11:49:03.272] [DEBUG] [edge] [restapi_client.go:210 callRestApi()] : Exiting
[2024-10-03 11:49:03.272] [DEBUG] [edge] [restapi_client.go:116 CallCRRESTAPI()] : Exiting
[2024-10-03 11:49:03.272] [DEBUG] [edge] [restapi_client.go:57 CallRESTAPIHeader()] : Exiting
[2024-10-03 11:49:03.272] [DEBUG] [edge] [restapi_client.go:384 HandleRESTAPIResponse()] : Entering
[2024-10-03 11:49:03.272] [DEBUG] [edge] [restapi_client.go:392 HandleRESTAPIResponse()] : REST status code :500
[2024-10-03 11:49:03.272] [ERROR] [edge] [restapi_client.go:401 HandleRESTAPIResponse()] : Failed to connect to mail server: dial tcp: lookup smtp-mail.com: i/o timeout
[2024-10-03 11:49:03.272] [DEBUG] [edge] [restapi_client.go:402 HandleRESTAPIResponse()] : Exiting
[2024-10-03 11:49:03.272] [DEBUG] [edge] [jsonerr.go:27 JSONError()] : Entering
[2024-10-03 11:49:03.272] [ERROR] [edge] [jsonerr.go:40 JSONError()] : 500 : Failed to connect to mail server: dial tcp: lookup smtp-mail.com: i/o timeout
[2024-10-03 11:49:03.272] [DEBUG] [edge] [jsonerr.go:44 JSONError()] : Exiting
[2024-10-03 11:49:03.272] [DEBUG] [edge] [notifications.go:560 RetrieveEmailCert()] : Exiting
[2024-10-03 11:49:03.272] [INFO] [edge] [restauth.go:111 func1()] : POST /cr/v8/notifications/retrieveEmailCert End RetrieveEmailCert Elapsed=10.005125439s

notifications.log:

[2024-10-03 11:48:53.270] [INFO] [notifications] [restauth.go:68 func1()] : POST /irapi/v8/notifications/retrieveEmailCert Start RetrieveEmailCert
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [restauth.go:210 validateToken()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [restauth.go:194 DecryptToken()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [encoding.go:48 DecodeString()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [encoding.go:56 DecodeString()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [crcrypto.go:558 DecryptCFB()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [crcrypto.go:579 DecryptCFB()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [encoding.go:48 DecodeString()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [encoding.go:56 DecodeString()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [crcrypto.go:112 GenHash()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [crcrypto.go:118 GenHash()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [restauth.go:206 DecryptToken()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [restauth.go:268 ValidateTokenTime()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [restauth.go:281 ValidateTokenTime()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [restauth.go:255 validateToken()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [notifications.go:283 RetrieveEmailCert()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [notifications.go:175 ValidateMailServer()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [notifications.go:201 ValidateMailServerURL()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [notifications.go:210 ValidateMailServerURL()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [notifications.go:215 ValidateMailServerPort()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [notifications.go:222 ValidateMailServerPort()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [notifications.go:196 ValidateMailServer()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [email.go:227 RetrieveEmailCert()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [email.go:272 GetTLSConn()] : Entering
[2024-10-03 11:49:03.271] [DEBUG] [notifications] [email.go:283 GetTLSConn()] : Exiting
[2024-10-03 11:49:03.272] [ERROR] [notifications] [email.go:235 RetrieveEmailCert()] : Failed to connect to mail server: dial tcp: lookup smtp-mail.com: i/o timeout
[2024-10-03 11:49:03.272] [DEBUG] [notifications] [email.go:236 RetrieveEmailCert()] : Exiting
[2024-10-03 11:49:03.272] [ERROR] [notifications] [notifications.go:321 RetrieveEmailCert()] : Failed to connect to mail server: dial tcp: lookup smtp-mail.com: i/o timeout
[2024-10-03 11:49:03.272] [DEBUG] [notifications] [jsonerr.go:27 JSONError()] : Entering
[2024-10-03 11:49:03.272] [ERROR] [notifications] [jsonerr.go:40 JSONError()] : 500 : Failed to connect to mail server: dial tcp: lookup smtp-mail.com: i/o timeout
[2024-10-03 11:49:03.272] [DEBUG] [notifications] [jsonerr.go:44 JSONError()] : Exiting
[2024-10-03 11:49:03.272] [DEBUG] [notifications] [notifications.go:323 RetrieveEmailCert()] : Exiting

バージョン19.17以降、Cyber RecoveryはTLSの使用時にメール サーバー証明書の検証を開始しました。
ドメイン ネーム システム(DNS)以外の環境では、環境内にDNSがないためにCyber Recoveryがホスト名をIPアドレスに解決できないため、メール サーバーをDNS名として入力できません。
CR内の[メール/リレー サーバー]フィールドとしてIPアドレスが使用されており、メール サーバーから提供された証明書にIPが含まれていない場合、証明書がIPに対して検証されているため、検証は失敗します。 

これを機能させるには、いくつかの回避策があります。 

  1. 検証が機能するように、メール サーバーから提供された証明書にIPアドレスを追加します。
  2. メール サーバーとIPのエントリーを /etc/hosts を通知コンテナに含めて、CRがメール サーバーを正常に解決し、証明書の検証を実行できるようにします。

解決方法

この問題を解決するには、次の 2 つのオプションがあります。

  1. メール サーバーは完全修飾ドメイン名(FQDN)を使用しており、Cyber Recoveryは証明書の取得に失敗します。
    • ヴォールト環境でDNSサーバーを使用していることと、それが正常に動作していることを確認します。
    • ヴォールトにDNSサーバーがない場合は、次の手順に従います。
      • 通知ドッキング ウィンドウのホスト ファイルにSimple Mail Transfer Protocol (SMTP)サーバーの詳細を入力します。
        1. SSHを使用してCyber Recoveryに接続します。
        2. 次のコマンドを実行します。 
           docker exec -it cr_notifications_1 bash
        3. テキストエディタでファイルを開きます。
          /etc/hosts
        4. SMTPサーバーのエントリーをIP、FQDN、短い名前として追加します。
        5. ファイルを保存します。
        6. 次のコマンドを実行して、Dockerコンテナを終了します。
          exit
      • に入力するには /etc/hosts 再起動後もファイルを保持するには、次の手順を実行します。
        • に行を追加する cr-install-path>/etc/docker-compose-prod-<current-version>.yml 追加する IP に対して /etc/hosts 通知:
        • 太字でハイライト表示されている新しい行には、SMTP FQDNとIPが含まれている必要があります。

          SMTP.server.com:xxx.xxx.xxx.xxx

             
                          build: .
                          image: ${registryName}/cr_notifications:${notificationsVersion}
                          container_name: cr_notifications_1
                          security_opt:
                                  - no-new-privileges:true
                          hostname: notifications
                          expose:
                                  - "9096"
                          depends_on:
                                  - postgresql
                          cap_drop:
                                  - ALL
                          environment:
                                  - LD_LIBRARY_PATH=/cr/lockbox/lib
                                  - CRHOSTNAME=${dockerHostFQDN}
                                  - ENABLE_TLS=${enableTLS}
                                  - ENABLE_POSTFIX=${enablePostfix}
                                  - GODEBUG=tlskyber=0
                          extra_hosts:
                                  - dockerbridge:${dockerBridge}
                                  - ${dockerHostFQDN}:${dockerHost}
                                  - SMTP.server.com:xxx.xxx.xxx.xxx
        • Then run 'crsetup.sh – forcerecreate' 実行中のジョブがない場合。
  2. SMTPおよびCyber RecoveryにIPアドレスを使用すると、証明書の取得に失敗します。
    • この場合、使用するIPアドレスを含む新しい証明書を生成する必要があります。

または

    • 証明書がFQDNを使用して作成された場合は、IPを使用してSMTPに接続するのではなく、Cyber Recovery UIでFQDNを使用します。

対象製品

PowerProtect Cyber Recovery, Cyber Recovery Series
文書のプロパティ
文書番号: 000242079
文書の種類: Solution
最終更新: 07 1月 2026
バージョン:  3
質問に対する他のDellユーザーからの回答を見つける
サポート サービス
お使いのデバイスがサポート サービスの対象かどうかを確認してください。