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 が設定されていても問題ない。
