С CentOS почти не работаю, в основном Ubuntu и соответственно Debian. Но пришлось взяться за задачу, столкнулся с проблемой.

Error: Command '['/opt/eff.org/certbot/venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1

Есть много советов в сети, основной из которых, это выполнить export LC_ALL=C и попробовать снова запустить certbot-auto. В моём случае это не работало. Нашёл решение!

В файле /usr/lib/python3.4/shutil.py (line 387) заменить
try:
    names = os.listdir(topfd)
except OSError as err:

на это:

try:
    names = os.listdir(path)
except OSError as err:

Не знаю, насколько кошерно, но после этого ошибка исчезла, сертификат получил!

Сам процесс получения сертификата


# установить git
yum install git

# скачать файлы Let’s Encrypt
cd /tmp
git clone https://github.com/certbot/certbot

# установить права на выполнение
cd certbot
chmod a+x ./certbot-auto

# получить сертификат
./certbot-auto certonly --webroot --agree-tos --email admin@site.ru -w /var/www/html/site/public -d site.ru -d www.site.ru

# настройка ssl для хоста
ssl_certificate /etc/letsencrypt/live/site.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/site.ru/privkey.pem;

# 
service nginx reload


# Обновление сертификата через cron
crontab -e

# Если нет крона в системе
yum install vixie-cron
service crond start
chkconfig crond on

# Переход к вводу текста - " i ". Вводим строку
* 1 * * 1 /tmp/certbot/certbot-auto renew --quiet 

# Переход в командный режим - " Esc "
# Сохраняем и выходим - " :wq "

# Проверяем запись
crontab -l

service crond restart

Протестировать сертификат можно тут — www.ssllabs.com/index.html