perl LWPで “SSL connect attempt failed error:0A000152:SSL routines::unsafe legacy renegotiation disabled” エラーになる
エラーメッセージの通り、"unsafe legacy renegotiation" で、「JVNDB-2009-002319 – 脆弱性対策情報データベース」と思われる。
ubuntu 20.04 で動いていたプログラムを ubuntu 22.04 に移すと発生したので、どこかで制限が厳しくなったのだろう。
SSL Server Test で調べると、"Secure Renegotiation Not supported ACTION NEEDED" なのでサーバー側の問題っぽい。念の為このブログを運営しているサーバー(www.zukeran.org)も見てみたが、こちらは “Secure Renegotiation Supported" で問題なし。
対処
サーバー側(Apache)で、SSLInsecureRenegotiation on してもらうのが正しいのだが、とりあえず手元のプログラム修正で逃げることにする。SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATIONを設定。
my $ua = LWP::UserAgent->new( ssl_opts => { verify_hostname => 0, SSL_create_ctx_callback => sub { my $ctx = shift; # 0x00040000 SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION Net::SSLeay::CTX_set_options($ctx, 0x40000); Net::SSLeay::CTX_set_security_level($ctx, 1); }, } );
ディスカッション
コメント一覧
まだ、コメントがありません