perl LWP でhttpsをGETすると 500 Can’t connect になる問題

2020/06/01Linux

県内自治体サイトのいくつかが perl LWPでGETすると 500 Can’t connect になる。5月末頃からこの現象が発生。原因と対処をメモしておく。

$ GET -s https://www.vill.yomitan.okinawa.jp
500 Can’t connect to www.vill.yomitan.okinawa.jp:443
Can’t connect to www.vill.yomitan.okinawa.jp:443

現象

県内複数自治体サイトで発生する。ブラウザではエラーにならない。curlでもエラーにならない。現状エラーになる自治体は下記の5つ。もっとあるかも。

  • https://www.vill.yomitan.okinawa.jp/
  • https://www.city.okinawa.okinawa.jp/
  • https://www.city.nanjo.okinawa.jp/
  • https://www.city.uruma.lg.jp/
  • https://www.vill.nakagusuku.okinawa.jp/

同じく https を使っている那覇市や沖縄県庁サイトはエラーにならない。

原因

サーバー側に有効期限の切れたクロスルート証明書がインストールされている && perl LWPの処理がおかしい。



Qualys SSL Labsでテストすると赤字で表示される。



ブラウザでチェックすると問題ない。


応急処置

プログラム側で証明書エラーを無視して対処…本当はこれではいかんのだが、とりあえず。


追記(1)

下記のシステムも同様の問題があるようです。


追記(2): MacOSで問題が出る場合

OSに含まれているlwp-requestが古い? (/usr/bin/lwp-request)
cpanm などで新しいのを入れて、そちらを参照するようにする。

Linux

Posted by ず@沖縄