CentOS6でcertbotを使い続ける

2021年10月からLet’s Encryptの使っているルート証明書が切れた(変更になった)関係で、古いシステムでは使えない話が出てきていましたが、それはクライアントの話。CentOS6のサーバーではcertbot(-auto)を継続利用できないのでさて困ったねと。
あともう1つオマケでfullchain.pemとiOSでの問題も最後に。

元々certbot-autoを使ってLet’s Encryptの証明書を更新していましたが、使えなくなりました。
1つはyumの問題。CentOS6はサポートが切れたのでアップデートを提供してくれてたリポジトリも閉じてしまいました。このへんは各リポジトリに使われていた mirrorlist.centos.org を vault.centos.orgに変えてやれば一応使えます。
そしてcertbot-autoが「Your system is not supported by certbot-auto anymore.」と言ってきて終わります。

解決のため、別のcertbotをもってきて使います。Python3.6以降が必要です。
が、CentOS6には提供されていません。
IUS Community ProjectもCentOS6用は閉じてしまいました。

そんなわけでpyenvでインストールして使います。
参考サイト>CentOS6 certbot-auto の代替方法(pip) – Knowledge

git clone git://github.com/yyuu/pyenv.git ~/.pyenv

.bashrcに追加

export PYENV_ROOT="${HOME}/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
    export PATH=${PYENV_ROOT}/bin:$PATH
    eval "$(pyenv init --path)"
fi

↑参考サイトではevalの行が pyenv init – になっていますが、これは変更されたようで、–pathにしないとインストール後のPATHが通りません。

source .bashrc
pyenv install 3.6.15
pyenv global 3.6.4
python --version
#↑3.6.15の表示を確認
pip install --upgrade pip
pip3 install certbot certnpt-apache
#↑apacheプラグインを使っていた場合はcertbot-apacheも必要
which certbot
#↑インストール先の確認

3.8とか新しいバージョンはライブラリが古いと入りませんので諦めて3.6系の最新でいきます。

certbot renewで確認してみますが、apacheプラグインも2.2へのサポートは終わるぞと予告が。
そのうちバージョンアップ作業をしておきましょう…
あとcertbot-autoは自動実行してると思うのでそのへんの設定もwhich certbotでPATHを確認して書き換えを。

fullchain.pemで問題

サーバーの設定で証明書を指定する際に
SSLCertificateFile cert.pem
SSLCertificateKeyFile privkey.pem
SSLCertificateChainFile chain.pem
と3行で指定していれば問題なかったのですが、fullchain.pemを使って
SSLCertificateFile fullchain.pem
SSLCertificateKeyFile privkey.pem
の2行で指定していた場合、chainが読み取れないのか、MacOSとiOSでは古いLet’s EncryptのRST Root CA X3が参照されてエラーになってしまっていました。少なくともWindowsとAndroidでは問題ありませんでした。
3行で別にchain.pemを指定すると、最新のISRG Root X1が使われます。ということでChainFileもちゃんと指定しよう。
そして何よりCentOS6環境から抜けだそう…

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください