少し前にプロバイダを変えることで、運営中のサーバをhttpsに対応させたのだけれど、やっぱり前のプロバイダのほうがいいということがいくつかあって、前のサーバで(無料で!)httpsに対応しようとちょっと頑張ってみた(まだ解約はしてなかった)。
Let’s Encryptをインストールしようとしてみたのだけれど、途中でエラーになってしまう。
Error: Command '['/opt/eff.org/certbot/venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1
このメッセージをググってみたら、どうやらpython3の問題らしい(なのかな〜?)。ともかく次のページの下のほうに書いてあるように lib/python3.4/shutil.py というファイルを修正したら無事できた(日本語のページがヒットしなかったので、ここに書いておくことにします)。
https://community.letsencrypt.org/t/failed-to-run-certbot-auto-successfully-on-centos-6-5/51376/2
実行前に次も必要かも。
export LC_ALL=C
その他、参考になったページ
- https://jonkara.net/2017/10/12/ssl_lets_encrypt/ —— わかりやすく書かれていて助かりました。感謝
- https://www.ssllabs.com/ssltest/analyze.html?d=www.●●●.com —— 最後に確認。www.●●●.comを自分のサイトに変更してください。
更新で、また、エラーになってしまった
なんか、自動更新がかかってまたエラーになってしまった。 同じ、箇所が動かなくなってしまったので、具体的に何をすればよいか、書いておきます。
直すファイルは /usr/lib/python3.4/shutil.py の 387行目。try: names = os.listdir(topfd) except OSError as err: ↓ try: names = os.listdir(path) except OSError as err:
topfd を path に直して、再度実行すれば無事動いた!