サポート終了したCentOS6でyumがエラーになる場合の簡単な対処法([errno 14] problem making ssl connection)
CentOS6は2020年11月30日でサポートが終了しました。
通常OSアップデートなどはサポートが切れていると重大なセキュリティリスクを抱えることになり問題ですが、システムのアップデートができないケース・ローカル環境だけの問題でとりあえずそのままの状態で解決したい場合があると思います。
調べるといくつか記事が見つかりますが、それでもかなりハマってしまったので自分の対処法をご紹介します。
yum installで[Errno 14] problem making ssl connectionが発生する問題
これまで使えていたのに、久しぶりにyumのパッケージ更新をしようとしたところ下記のエラーが発生しました。
$ yum update Loaded plugins: fastestmirror, ovl Setting up Install Process Loading mirror speeds from cached hostfile YumRepo Error: All mirror URLs are not using ftp, http[s] or file. Eg. Invalid release/repo/arch combination/ removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt Error: Cannot find a valid baseurl for repo: base
CentOS6のサポートが切れたことで、yumリポジトリが消されてしまったようです。
これについては調べてみるといくつか対応策がありましたが、リポジトリのURLを変更することで対応できるとのこと
変更点方法
yumリポジトリの設定ファイルを編集し下記の変更を行います。(念の為バックアップを取りましょう)
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bk vi /etc/yum.repos.d/CentOS-Base.repo
mirrorlist=
の箇所を全てコメントアウト#baseurl=
をbaseurl=
のようにコメントアウトを外すmirror.centos.org
をvault.centos.org
に変更
変更前
[base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
変更後
[base] name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra baseurl=http://vault.centos.org/centos/$releasever/os/$basearch/
[updates]のようにいくつか変更箇所があるので全て変更してみてください。
この状態で一度yumが通るかどうか確かめてみます。
$ yum update http://vault.centos.org/centos/6/os/x86_64/repodata/repomd.xml: [Errno 14] problem making ssl connection Versuche anderen Spiegel-Server. Fehler: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again
あれ、、、失敗している。
こちらも調べるとTSL1.1以降を対応する必要があり、NSSというミドルウェアを更新する必要があるようです。
Network Security Services (NSS) は、SSL をサポートするオープンソース暗号化ライブラリのセットです。cURL などの複数の Linux ツールは NSS を使用して、信頼される SSL 通信を確認します。
「yum update nss」ができないケース
しかし、NSSのアップデートはyumを使ってのアップデートがよく紹介されており、自分でコンパイルするのはかなり億劫でした。
かなり悩んだところ上記にてyumリポジトリの変更先であるhttps://vault.centos.org/ にアクセスしてみるとSSL非対応のミラーサイトがいくつか紹介されていたのでそれを使えばうまくいくのでは、、、と思ったので試してみたところうまくいきました。
[base] name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra baseurl=http://mirror.nsc.liu.se/centos-store/centos/$releasever/os/$basearch/
ということで変更が面倒なのでスクリプトで一括で対応すると下記のようになります。
sed -i -e "s|mirror\.centos\.org|mirror\.nsc\.liu\.se/centos-store|g" /etc/yum.repos.d/CentOS-Base.repo sed -i -e "s|#baseurl=|baseurl=|g" /etc/yum.repos.d/CentOS-Base.repo sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-Base.repo
ついでにNSSも更新しておくのがいいかなと思います。
yum update nss
なかなか対応できる記事が見つからなかったので、うまくいって何よりです。
ま、OSアップデートしたほうがいいんですけどね。