SSL(Secure Sockets Layer) - OpenSSL 3's legacy provider failed


 クラウディア


1. 概要
2. 現象
3. 対策
4. 参考サイト

1. 概要

 「python」を「3.12」へアップグレードしてから、発生するようになった気がします。

2. 現象

 「OpenSSL 3.0」以降では、従来の暗号アルゴリズムや機能が「legacy provider」として分離されました。このため、古いアプリケーションやライブラリがこれらの機能に依存している場合、適切なプロバイダがロードされていないと、「legacy provider failed」というエラーメッセージが表示されることがあります。  「python」で「SSL」を「import」している場合、こんな「warning」が出力されます。

Warning: OpenSSL 3's legacy provider failed to load. Legacy algorithms will not be available. If you need those algorithms, check your OpenSSL configuration.

3. 対策

 環境変数で、「CRYPTOGRAPHY_OPENSSL_NO_LEGACY」をいうシンボルを有効にします。  「~/.bashrc」へ組み込むならば、下記の行を追加します。

export CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1

4. 参考サイト

 本ページは、「ChatGPT」軍曹を参考にさせていただきました。