サポート終了した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
  1. mirrorlist= の箇所を全てコメントアウト
  2. #baseurl=baseurl=のようにコメントアウトを外す
  3. mirror.centos.orgvault.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非対応のミラーサイトがいくつか紹介されていたのでそれを使えばうまくいくのでは、、、と思ったので試してみたところうまくいきました。

https://vault.centos.org/

[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アップデートしたほうがいいんですけどね。

コメントを残す

メールアドレスが公開されることはありません。