[Let’s Encrypt]Certbot renew 時に「 ascii codec can’t decode… 」とエラーが出る際の対処方法

Let's Encrypt の証明書を更新する際に「 certbot-auto renew 」コマンドを実行するのですが、下記のエラーが出て更新失敗した時の対処法をメモしておきます。

produced an unexpected error: 'ascii' codec can't decode byte 0xe3 in position 22: ordinal not in range(128)

エラーの原因

エラーの原因としては nginx のコンフィグファイルに日本語でコメントなどが記述されている場合にエラーが発生するようです。

エラーの対処法1

nginx のコンフィグファイルと、呼び出しているコンフィグファイルから、日本語部分を削除することでエラーは発生しなくなります。

エラーの対処法2

日本語のコメントを残しておきたい場合、以下の手順により対処可能です。

site-packages ディレクトリ内に sitecustomize.py というファイルを作成する。

Let's Encrypt がインストールされている Pythonsite-packages ディレクトリに sitecustomize.py というファイルを作成します。

ファイルの中身は以下の通りです。

import sys
sys.setdefaultencoding('utf-8')

Python 2系の環境だとデフォルトのエンコーディングが「 ascii 」になってる?っぽくて、それを「 utf-8 」に変更しています。

最後に

もし、 Let's Encrypt を利用していて同じエラーが出ている人がいれば一度試してみてください。

コメントする

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