frontierlinkWebサービスにSOAPリクエストを送信するたびにこのエラーが発生するまで、私のコードは以前は機能していました。
File "/home/venv/lib/python2.7/site-packages/OpenSSL/_util.py", line 54, in exception_from_error_queue
raise exception_type(errors)
OpenSSL.SSL.Error:[( 'SSLルーチン'、 'SSL_CTX_use_certificate'、 'ca md too weak')]
接続に使用しているpemファイルを再生成する必要がありますか、それともpemファイルの生成に使用した.p12ファイルに問題がありますか?
私の問題についてさらに情報が必要な場合はお知らせください。
ノート:
私が使用しているOpenSSLのバージョンは次のとおりです:OpenSSL 1.0.2k-fips
前もって感謝します!
表示されるエラーメッセージは、使用している証明書がmd5
ハッシュで署名されていることを示しています。
OpenSSL 1.1.0以降、この署名方法は無効になり、より強力なハッシュを使用する必要があります。証明書を再生成し、より強力なハッシュを使用して署名する必要がある場合があります(例:SHA1
)。
OpenSSL Users のフォーラム投稿から判断すると、接続しようとしているサービスがOpenSSLのバージョンをアップグレードし、証明書を拒否しているため、この問題が発生している可能性があります。
私のように、raspberrypiで暗号化されたHTTPS接続を介してFlaskエンドポイントサーバーをセットアップしようとすると、OPと同じエラーが発生し、提供されたpythonデフォルトのラズビアンOSのライブラリ(FlaskとpyOpenSSL)が古すぎます
執筆時点では、Raspbian 9(stretch)、python 3.8、デフォルトのライブラリバージョンはFlask == 0.12.1、pyOpenSSL == 16.2.0
最新のFlask == 1.1.1とpyOpenSSL == 19.1.0をインストールすることで、OPと同じエラーを修正しました
私の答えが役立つかどうかはわかりませんが、それを捨てるだけです。