OrangeGardenRoom

技術系のメモ

古いUbuntuサーバでhttpsアクセスができない

証明書でしょうね。

それしかないんで、UbuntuサーバのOSアップデートすればいいんですけど、

まあそんなぽいぽい業務で動かしているサーバのOSアップデートしたら何が起こるかわからない

(最悪サーバが止まって動かなくなる)わけで……。

解決していきたいなと思いますがのチャレンジ。解決しないかも。

まず、Perlのプログラムで実行した場合のエラー内容。

LWP::Protocol::https::Socket: SSL connect attempt failed with unknown errorerror:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version at /usr/share/perl5/LWP/Protocol/http.pm line 51.

ちなみに、解決方法として「Crypt::SSLeay」「IO::Socket::SSL」「LWP::Protocol::https」を更新するorインストールする方法。

apt-getなら下記のように。

apt-get install libcrypt-ssleay-perl
apt-get install libio-socket-ssl-perl
apt-get install liblwp-protocol-https-perl

全部当然のように入っているのでダメでした。

OpenSSLも更新してみたけど最新ですー、って出るのでだめでした。

apt-get update、upgradeしてもだめでした。

次に、wgetしてみる。

user@Server:/home/user $ wget https://***.cybozu.com/k/v1/records/cursor.json
–2022-03-31 13:59:04– https://***.cybozu.com/k/v1/records/cursor.json
Resolving ***.cybozu.com… xxx.xx.xx.xx, xxx.xx.xx.yy
Connecting to ***.cybozu.com|xxx.xx.xx.xx|:443… connected.
OpenSSL: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
Unable to establish SSL connection.

同じエラーですねぇ。

ちなみにcrulでやってみたもの。

user@Server:/home/user $ curl https://***.cybozu.com/k/v1/records/cursor.json
curl: (35) error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

まあそりゃそうよねって感じですが。

ちなみに原因としては、各種サイトが、TLS1.2対応になっていることです。

POODLEという暗号化を解除されてしまう脆弱性があり、SSL3.0は早々に廃止されたけど、

TLS1.0とTLS1.1もこれ使えちゃうってことで、TLS1.0と1.1も廃止の動きになったのが2018年で、

2022年の今、ほとんどTLS1.2以外非対応でしょうといっても過言ではない状態。

OpenSSLのバージョン1.0.1未満の場合、TLS1.2が使えないようなので、OpenSSLのバージョンを上げていきたいと思います。

サイトを参照しつつ、/usr/local/sslにOpenssl 1.1.1nをインストールし、/usr/bin/opensslを

/usr/loca/ssl/bin/opensslにシンボリックリンクで置き換え。

これで出来たらいいな、っておもったけどやっぱダメ。

CPAN経由でNet::SSLeayを最新インストールしたところリポジトリが古くてダウンロード失敗するので、新しいftpサイトを追加。

ついでにCPAN自体も更新。make install OK。

cpan[3]> o conf urllist
    urllist
        0 [ftp://ftp.u-aizu.ac.jp/pub/CPAN/]
        1 [ftp://mirror.yongbok.net/CPAN/]
        2 [ftp://cpan.cdpa.nsysu.edu.tw/Unix/Lang/CPAN/]
        3 [ftp://cpan.cs.pu.edu.tw/pub/CPAN/]
        4 [ftp://cpan.sarang.net/CPAN/]
Type 'o conf' to view all configuration items


cpan[4]> o conf urllist unshift ftp://ftp.riken.jp/lang/CPAN/
Please use 'o conf commit' to make the config permanent!


cpan[5]> o conf commit
commit: wrote '/etc/perl/CPAN/Config.pm'

cpan[6]> o conf urllist
    urllist
        0 [ftp://ftp.riken.jp/lang/CPAN/]
        1 [ftp://ftp.u-aizu.ac.jp/pub/CPAN/]
        2 [ftp://mirror.yongbok.net/CPAN/]
        3 [ftp://cpan.cdpa.nsysu.edu.tw/Unix/Lang/CPAN/]
        4 [ftp://cpan.cs.pu.edu.tw/pub/CPAN/]
        5 [ftp://cpan.sarang.net/CPAN/]
Type 'o conf' to view all configuration items


cpan[7]> install CPAN

cpan[8]> install Net::SSLeay

Net::SSLeayもmake install OK。

このあとやってみたけどやっぱりだめー。

2022年3月31日にメモがてら作って放置されてたので公開でおいておきます。

もう何が理由でこれやってたか、覚えていない……。


【参考サイト】

Apache での TLS1.0 と TLS1.1 の無効化と確認方法メモ
https://blog.apar.jp/web/10025/

Ubuntu に最新の OpenSSL を入れる
https://text.baldanders.info/remark/2020/06/installing-openssl-in-ubuntu/

OpenSSL公式
https://www.openssl.org/source/

さすがに無いと思うが、古いLinuxを使っててTLS1.2に対応できない対処方法
https://qiita.com/TetsujiOkuno/items/33062404da8a88be18f3

31 CentOS5 でTLS1.2
http://dokuwiki.fl8.jp/01_linux/02_www/31_centos5_tls

Fixing Perl script using LWP unable to connect to TLS 1.2 URL; failing with sslv3 alert handshake failure
https://www.claudiokuenzler.com/blog/1017/perl-lwp-unable-connect-tls-1.2-url-fail-sslv3-alert-handshake-failure

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です