my $ua = LWP::UserAgent->new();
my $res = $ua->get("https://url");
print $res->content;
使用を開始するまで、証明書が無効であるという応答が返されました (ホスト名の検証を無効にすると、サーバーは代わりに暗号化が必要であると言うでしょう) Net::SSL
。
$ENV{PERL_NET_HTTPS_SSL_SOCKET_CLASS} = 'Net::SSL';
私の要求を行う前に、ofc。
現時点でのモジュールのバージョン:
Crypt::SSLeay 0.58
IO::Socket::SSL 1.955
Net::SSLeay 1.55
LWP 6.05
LWP::Protocol::https 6.04
最新のものも試しましたCrypt::SSLeay
が、それでも失敗しました(テスト環境でこれを試しました)。
これは、クライアントとサーバーの間のライブラリの単なる制限Crypt::SSLeay
ですか?暗号化方法に同意できない可能性がありますか?
またOpenSSL
、問題のサーバーに手動で接続していましたが、問題なく動作し、証明書のエラーなどもありませんでした。
私の問題はすでに解決されていますが、非常に優雅に感じる方法ではありませんが、解決策を見つけるために何年も費やしたので、エラーがどこにあるのか、そして問題の根源について興味があります. SSL リクエストを他の何百ものサーバーに送信しても、この問題は発生しませんが、この 1 つのサーバーは、リクエストを暗号化する必要があるというメッセージで応答するだけです。
LWP
一緒にNet:SSL
もっとサポートされていますか?
問題の根本をどのように追跡しますか?
編集: 興味深いことに、これは古いバージョンのモジュールでは発生しませんでした (最近は機能しました)。LWP か何かが更新されたのではないかと強く疑っています。アップデートでこのように動作が変わるのは奇妙です。