search cancel

SEPM 14.3 RU1以降: サーバー証明書の期限が切れてDBに接続できなくなりSEPMにログインできない

book

Article ID: 229342

calendar_today

Updated On:

Products

Endpoint Protection

Issue/Introduction

Symantec Endpoint Protection Manager(以下SEPMと略)を古いバージョンから SEPM 14.3 RU1にアップグレードを行ったが、証明書の期限が切れてSEPMにログインできなくなった。
以下の事象が発生

  • C:\Program Files (x86)\Symantec\Symantec Endpoint Protection Manager\apache\conf\ssl\server.crtを開くと期限切れとなっている
  • scm-server-*.logその他のログでで証明書期限切れエラーとなり、SQLServerにログインできない
  • SEPMで「予想外のサーバーエラー。」が発生しログインできない。
  • sqlcmd -N -S hostname\SQLEXPRESSSYMCも証明書のエラーが発生し接続できない。

Environment

Release : 14.3 RU1 以降

Component : Default-Sym

Resolution

SEPMとクライアント間が暗号化に使用されている証明書はSQLServerとの暗号化にも利用されています。
この際にSQL Server側の証明書の期限切れの場合、DBへの接続ができなくなり、SEPMへのアクセスができなくなります。
以下のページで新しい自己署名の証明書の作り方の記載がありますが、この手順では実際の証明書の作成は証明機関へ提出が必要となります。

  Use a signed certificate with Endpoint Protection Manager

そこでここでは便宜的に証明書を自己署名のopensslコマンドだけで作成を進める手順について記載します。
社内または外部の証明機関を利用している場合はそちらを利用して正しい証明書を作成してください。

opensslコマンドによる秘密鍵、証明書の作成手順
事前準備

作業前には証明書のバックアップやシステムバックアップを取得し復旧可能とすることを推奨させていただきます。

  1. 有効な自己署名証明書をpfx形式で作成します。
    opensslコマンドを使った作成方法については Additional Infomration欄に記載します。
  2. 作成されたpfx形式の自己署名証明書を ローカルコンピューターと現在のユーザの 個人、 信頼されたルート証明機関ストアにインストールします。
    1. 作成されたpfxの証明書をダブルクリックします。
    2. ローカルコンピューターを選択し、次へ
    3. ファイルの選択を確認し、次へ
    4. pfx作成時のパスワードを入力して次へ
    5. 証明書をすべて次のストアへ配置するを選択し、参照ボタンから信頼されたルート証明機関を選択し次へ
    6. 完了
    7. a-fをローカルコンピューター: 個人、現在のユーザー: 個人で繰り返します。
  3. 証明書へのアクセス権限付与
    1. サービスマネージャーからSQL Server (SQLEXPRESSSYMC)のプロパティを開き、ログオンタブで実行ユーザを確認します。
    2. 証明書マネージャで 証明書(ローカルコンピューター) > 個人 > 証明書を開きます。
    3. 該当の証明書を選択し、左クリックのメニューから 全てのタスク > 秘密キーの管理を選択
    4. ユーザの追加をクリック
    5. 選択するオブジェクトにSQL Serverサービスの起動ユーザー名(デフォルトではNT Service\MSSQL$SQLEXPRESSSYMC)を指定して、名前の確認をクリック
    6. 名前が確認出来たら、OKをクリックして元の画面に戻ります。
    7. 読み取りのチェックを残して他を外します。
    8. OKをクリックして終了します。
    9. SQL Server サービスの再起動
  4. SQL Server Configuration Tool で証明書をいったん登録して再度削除します。
    1. SQL Server Configuration Managerを起動
    2. SQL Server Network Configurationを開き、Protocols for インスタンス名を選択
    3. プロパティを開く
    4. Certificateタブで新しく作成した証明書を選択してOKをクリック
    5. 再度プロパティ > Certificateタブを開いてClearをクリックした後、再度OKをクリック
    6. SQLServer サービスを再起動
  5. SEP関連のサービスの停止
    以下の4つのサービスを停止します。
    Symantec Endpoint Protection Manager
    Symantec Endpoint Protection Manager API サービス
    Symantec Endpoint Protection Manager Web サーバー
    Symantec Endpoint Protection Launcher
  6. SEPM暗号化通信設定の変更
    1. C:\Program Files (x86)\Symantec\Symantec Endpoint Protection Manager\tomcat\conf\Catalina\localhostに移動
    2. ROOT.xmlをテキストエディタで開く
    3. trustServerCertificateをfalseからtrueに変更して、保存後閉じます。
  7. SEP関連のサービスの再起動
    以下の4つのサービスを起動します。
    Symantec Endpoint Protection Manager
    Symantec Endpoint Protection Manager API サービス
    Symantec Endpoint Protection Manager Web サーバー
    Symantec Endpoint Protection Launcher
  8. SEPMにログイン後クライアントの接続で一旦セキュリティを無効化して、ハートビート期間で反映されるのを待ちます。
     該当グループを選択 > ポリシー タブ > 全般 > セキュリティの設定タブを選択し、「認証にデジタル認証を使うことによって..」のチェックを外す。
  9.  SEPMの証明書を上記で作成した証明書で更新します。
    1. SEPMにログイン
    2. 管理 > サーバー > SEPMサーバーを選択し、タスクメニューからサーバー証明書の管理を選択
    3. サーバー証明書を更新するを選択
    4. 作成された pfx形式のサーバー証明書を選択し、pfx作成時に設定されたパスワードを入力
    5. この後、SEPM関連サービスの再起動が必要です。
  10. 各クライアントへ通信設定の配備で強制的に更新するか、ハートビート期間で証明書が更新されるのを待つ
  11. クライアントの接続で再度セキュリティを有効化
    該当グループを選択 > ポリシー タブ > 全般 > セキュリティの設定タブを選択し、「認証にデジタル認証を使うことによって..」のチェックを入れる。

  注: 8番目以降の手順の詳細についてはマニュアルの「クライアントとの通信を切断せずに管理サーバ上でサーバ証明書を更新する」もご参照下さい。
  


Additional Information

証明書が有効期間内であればSEPMのGUIからも作成可能です。
その場合は類似の技術情報をご参照ください。

  SEP 14.3RU1以降: 証明書期限切れの通知メールでGUIから証明書を更新しても通知メールが届く

ここでは、別名データを持つ自己署名付き証明書の作成方法の例を記載します。
なお、コマンド例では証明書の期限を10年で作成しています。
期限やその他の設定内容についてはお客様の環境に合わせて調整してください。
引数や指定された値についてはopensslコマンドのマニュアルをご参照ください。

作業は作業用フォルダで行います。
この例では作業用フォルダを以下に設定しています。

  C:\Program Files (x86)\Symantec\Symantec Endpoint Protection Manager\apache\conf\ssl\tmpNewCert

また、opensslコマンドにパスを通しておくと便利です。
set PATH=%PATH%;"C:\Program Files (x86)\Symantec\Symantec Endpoint Protection Manager\apache\bin"
事前準備として作業用フォルダで以下のファイルを作成してください。
DNS、IPが更に複数ある場合は番号を振って追加してください。

ext.txt
--- ここから ---
subjectAltName = DNS:ホスト名, DNS:ホスト別名1, DNS:ホスト別名1, IP:192.168.1.50, IP:10.0.0.50
--- ここまで ---

  1. 秘密キーを作成します。
    openssl genrsa -out server.key 2048
  2. サーバー証明書要求ファイル(CSR)を作成します。
    openssl req -new -key server.key -out server.csr -config ..\openssl.cnf
    プロンプトが表示されるの必要な情報を入力してください。
  3. サーバー証明書を作成します。
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt -extfile ext.txt
  4. pfx形式に変換します。
    openssl pkcs12 -export -inkey server.key -in server.crt -out server.pfx