Vizlibナレッジ - INSIGHT LAB

【Vizlib Server】OpenSSLでSSL証明書をアップデート

作成者: Turtle|2024年6月

1. はじめに

Vizlib Serverは v4.14.0のバージョンアップデート により、以降のバージョンで一部のSSL証明書を使用したSSL化が実施できないようになりました。(以下が原文になります)

 ⚠️ Node 18 upgrade (ACTION MAY BE REQUIRED!)
The update to 4.14.0 comes with a potentially breaking change (security update) for users to be aware of - the update of the underlying runtime to Node version 18. Node version 18 comes bundled with a modern OpenSSL version which forces Node to use newer, more secure SSL certificate cipher suites.
This means that using an older SSL certificate, possibly encrypted with an older, currently insecure encryption algorithm might cause the VizlibServer to not be able to initiate a secure HTTPS server.

アルゴリズムが古く、現在安全ではない(とされている)暗号化アルゴリズムで暗号化されているSSL証明書は使用できないと記載があります。

対応していないSSL証明書は、Vizlib Serverが対応している暗号化アルゴリズムにアップデートする必要があります。本記事では、その方法について解説します。

※本記事では、OpenSSLを使ったSSL証明書のアップデートを実施しますが、OpenSSLについての説明は割愛し、具体的な手順の解説のみを実施しています。予めご了承ください。

2. OpenSSLのインストール

2-1. exeファイルの取得

リンク先から、.exeファイルを取得してください。

※1 SSL証明書の更新であれば、「Light」が付くバージョンで問題ない
※2 32ビットOSの場合は「Win32」から始まる「EXE」をダウンロードする

2-2. OpenSSLのインストール

以下に記載する手順1~6に従って、インストールを実施してください。

手順1:exeファイルを起動、 [I accept the agreement] をチェックし、[Next] を選択
手順2:[Next] を選択

手順3:[Next] を選択
手順4:[The OpenSSL binaries (/bin) directory] をチェックし、[Next]を選択

手順5:[Install]を選択
手順6:チェックを外し、[Finish]を選択

2-3. 環境設定

コマンドプロンプト(またはPowerShell)ですぐに利用できるよう、以下の手順1~7の設定を実施してください。

手順1:[Windows] +[R] キーを押して「ファイルを指定して実行」ダイアログを開く
手順2:[SystemPropertiesAdvanced]を入力し、[OK]をクリックする

手順3:システムのプロパティが表示されるので、[環境変数(N)…]をクリックする
手順4:[システム環境変数(S)]の[Path]を選択し、[編集(I)…]を選択する
手順5:[新規[N]]をクリックし、[C:\Program Files\OpenSSL-Win64\bin]を追加する

手順6:コマンドプロンプト(またはPowerShell)を管理者として実行する
手順7:Cドライブ直下に移動し、「openssl version」と入力し実行する
→キャプチャのように、バージョンが表示されれば、設定完了となる


3. SSL証明書のアップデート

以下に記載する手順に従って、SSL証明書のアップデートを実行してください。
※1 本記事では、アップデートするSSL証明書はデスクトップに配置している
※2 本記事では、「old_certificate.pfx」を「new_certificate.pfx」にアップデートする

手順1:PowerShellを管理者として実行、SSL証明書が配置されているディレクトリに移動する

 

手順2:openssl pkcs12 -info -in [証明書のファイル名] -noout で証明書の情報を確認する

  • パスワード付きの証明書は、入力が求められる
  • パスワードは入力しても画面には表示されないので要注意
  • エラーが出る場合は、末尾に -legacy -provider-path "C:\Program Files\OpenSSL-Win64\bin" を付与して実行する

 

手順3:openssl pkcs12 -in [証明書のファイル名] -nodes -out decryptedPfxFile.tmp で暗号化を解除したファイルを生成する

  • パスワード付きの証明書は、入力が求められる
  • パスワードは入力しても画面には表示されないので要注意
  • エラーが出る場合は、末尾に -legacy -provider-path "C:\Program Files\OpenSSL-Win64\bin" を付与して実行する
  • 成功すると、証明書と同一ディレクトリに「decryptedPfxFile.tmp」というファイルが生成される

 

手順4:openssl pkcs12 -certpbe aes-256-ecb -in decryptedPfxFile.tmp -export -out [新規作成する証明書のファイル名] でtmpファイルをpfxファイルに変更する

  • 新規に作成する証明書のパスワードを2回入力する
  • パスワードは入力しても画面には表示されないので要注意
  • エラーが出る場合は、末尾に -legacy -provider-path "C:\Program Files\OpenSSL-Win64\bin" を付与して実行する

 

手順5:openssl pkcs12 -info -in [新規作成する証明書のファイル名] -noout で新規に作成した証明書の情報を確認する


  • パスワード付きの証明書は、入力が求められる
  • パスワードは入力しても画面には表示されないので要注意

4. おわりに

本記事では、Vizlib Serverのv4.14.0以降のバージョンに対応していないSSL証明書を、対応する形にアップデートする方法について解説しました。

実際のプロジェクトでSSL化がうまくいかず、原因の特定と解消にかなり時間がかかってしまいました。Vizlib ServerのSSL化でエラーが発生したときは、SSL証明書を疑ってみてください。