Introduction
備忘録。
OpenSSL (1.X 系) を Windows 環境で実行した際、なぜかエラーで動かなかった。
エラーは下記。
1 | Error configuring OpenSSL |
ところが全く同じバイナリを使っても、上記のエラーが表示される環境とそうでない環境があり、非常に混乱した。
How to resolve?
原因は 2 つ。
- OpenSSL の 3.X 系がシステムにインストールされている
- 環境変数
OPENSSL_CONF
にC:\Program Files\OpenSSL-Win64\bin\openssl.cfg
が指定されている
Windows のビルド済みインストーラは Win32/Win64 OpenSSL Installer for Windows が有名だが、これらを使ってシステムにインストールする。
インストールしただけでは、環境変数 OPENSSL_CONF
が設定されることはないが、自分の環境はいつの間にか値が設定されていた。
環境変数あり
1 | $ openssl.exe version |
環境変数なし
1 | $ openssl.exe version |
原因
設定ファイル C:\Program Files\OpenSSL-Win64\bin\openssl.cfg
を修正して対処することもできる。
1 | - providers = provider_sect |
これで
1 | $ openssl.exe version |
正常に動く。
設定ファイルとエラー名を見る限り、 providers.dll
と providers = provider_sect
が関わっていそうな感じはして試しに、設定を消したら動いた次第。
1.X 系のインストーラであれば 環境変数 OPENSSL_CONF
に C:\Program Files\OpenSSL-Win64\bin\openssl.cfg
が設定されていても問題ない。