▶ セイ・テクノロジーズ コーポレートサイトはこちら

サポート情報番号 000300
対象バージョン BOM 8.0 SR2 ~ SR3

概要

BOM アーカイブデータベースを SQL Server 2025 で構築している環境では、BOM アーカイブデータベース管理メニューからBOM インスタンスを削除スクリプトを実行した際に、エラーが発生する場合があります。

これは、SQL Server 2025 で証明書の検証が有効化されており、かつ自己証明書を使用している環境で発生することを確認しています。

対応方法

本現象は証明書の検証を無効化するか、以下の方法で証明書を登録することで回避できます。

事前確認

  1. SQL Server 2025 構成マネージャー を実行します。
  2. 「SQL Server 構成マネージャー(ローカル)」 → 「SQL Server ネットワークの構成」 → 「(インスタンス名) のプロトコル」 を右クリックして「プロパティ」を表示します。
  3. 表示されたプロパティダイアログの「証明書」タブを選択します。
  4. 「証明書」プルダウンが何も選択されていないことを確認し、プロパティダイアログを閉じます。
  5. SQL Server 2025 のインストールディレクトリ内から、インスタンスの 「ERRORLOG」内に 「A self-generated certificate was successfully loaded for encryption.」 というメッセージが出ていることを確認します。
    • これは SQL Server 2025 の一時的な自己証明書が利用されていることの確認です。
  6. 上記のメッセージ以降の 「ERRORLOG」内に 「The certificate [Cert Hash(sha1) “…”] was successfully loaded for encryption.」 というメッセージが出ていないことを確認します。
    • これは証明書ストア上の証明書が使用されていないことの確認です。
  7. 以下を参考にして PowerShell コマンドレットを実行し、SQL Server エージェントの実行ユーザーを確認します。
    以下の例では「NT Service\MSSQLSERVER」が実行ユーザーです。

      • PS> Get-CimInstance Win32_Service |
         Where-Object Name -like 'MSSQL*' |
         Select-Object Name, StartName, State
         Name StartName State
         ---- --------- -----
         MSSQLSERVER NT Service\MSSQLSERVER Stopped
         MSSQLLaunchpad NT Service\MSSQLLaunchpad Stopped
         MSSQLFDLauncher NT Service\MSSQLFDLauncher Running
        PS>

証明書の作成と配置

以下の操作は管理者権限で実施してください。

  1. 以下のスクリプトを実行します。これにより、その PC のサーバー証明書が作成されます。
      • $certificateParams = @{
         Type = "SSLServerAuthentication"
         Subject = "CN=$env:COMPUTERNAME"
         DnsName = @(
          $env:COMPUTERNAME,
          [System.Net.Dns]::GetHostEntry('').HostName,
          'localhost'
         )
         KeyAlgorithm = "RSA"
         KeyLength = 2048
         HashAlgorithm = "SHA256"
         TextExtension = "2.5.29.37={text}1.3.6.1.5.5.7.3.1"
         NotAfter = (Get-Date).AddMonths(36)
         KeySpec = "KeyExchange"
         Provider = "Microsoft RSA SChannel Cryptographic Provider"
         CertStoreLocation = "Cert:\LocalMachine\My"
        }

        $cert = New-SelfSignedCertificate @certificateParams

  2. 「ファイル名を指定して実行」で「certlm.msc」を実行し、て証明書ストアを表示します。
  3. 証明書ストアの「コンソールルート」 → 「証明書(ローカルコンピューター)」 → 「個人」 → 「証明書」 を選択し、PC 名のサーバー証明書が作成されていることを確認します。
  4. サーバー証明書を右クリックし、「すべてのタスク」 → 「秘密キーの管理」を選択して、アクセス管理ダイアログを表示します。
  5. アクセス管理ダイアログ内の「追加」ボタンをクリックします。
  6. 「ユーザー または グループ の選択」内の「選択するオブジェクト名を入力してください」欄に、事前に確認した SQL Server エージェントの実行ユーザーを入力します。
  7. 「名前の確認」ボタンをクリックして入力アカウントが確認されたら、「OK」ボタンをクリックしてアカウントを追加し、アクセス管理ダイアログに戻ります。
  8. アクセス管理ダイアログの「グループ名またはユーザー名」リストから追加したアカウントを選択して「アクセス許可」を 「読み取り専用」のみにし、「OK」ボタンをクリックして証明書ストアに戻ります。
  9. サーバー証明書を右クリックして「すべてのタスク」 → 「エクスポート」 を選択し、以下の流れで証明書を任意の場所にエクスポートします。
  10. エクスポートが完了すると、証明書ストアに戻ります。
    「コンソールルート」 → 「証明書(ローカルコンピューター)」 → 「信頼されたルート証明書機関」 → 「証明書」 を右クリックし、「すべてのタスク」 → 「インポート」を選択して、以下の流れでエクスポートした証明書をインポートします。

    1. インポートが完了するまでは、少し時間がかかる場合があります。
  11. インポートが完了すると、証明書ストアに戻ります。
    「コンソールルート」 → 「証明書(ローカルコンピューター)」 → 「信頼されたルート証明書機関」 → 「証明書」内にサーバー証明書が作成されていることを確認します。
  12. ここまでの作業が完了すれば、証明書ストアは閉じて問題ありません。

SQL Server インスタンス側の設定

  1. 「SQL Server 2025 構成マネージャー」を実行します。
  2. 「SQL Server 構成マネージャー(ローカル)」 → 「SQL Server ネットワークの構成」 → 「(インスタンス名) のプロトコル」を右クリックして、「プロパティ」を表示します。
  3. 表示されたプロパティダイアログの「証明書」タブを選択します。
  4. 「証明書」プルダウンで、上記で作成したサーバー証明書を選択します。
  5. 「OK」ボタンをクリックして設定を反映します。
  6. 「SQL Server 構成マネージャー(ローカル)」 → 「SQL Server のサービス」を選択し、右ペインから SQL Server インスタンスを右クリックして「再起動」を選択します。
  7. 再起動でエラーが発生しないこと、右ペインの SQL Server インスタンスの状態が「実行中」となっていることが確認できれば完了です。

関連記事