letsencrypt. Создание сертификата и заметки по решению проблем

Создание сертификата и заметки по решению проблем (применительно к Nginx)

#Как создать простой (не wildcard) сертификат

Создаём каталог:

mkdir -p /etc/nginx/acme-challenge
nano /etc/nginx/sites-enabled/default

Добавляем это в блок для порта 80:

location ^~ /.well-known/acme-challenge/ {
allow all;
root /etc/nginx/acme-challenge;
default_type "text/plain";
try_files $uri =404;
}

Перезапустить nginx, иначе конфиг не сработает

service nginx restart

Выполняем команду по получению сертификата:

certbot certonly --webroot --webroot-path /etc/nginx/acme-challenge -d example.com --register-unsafely-without-email

—register-unsafely-without-email — можно зарегистрироваться без ввода email

Обновление сертификата в кроне:

#At 13:00 on every 2nd day-of-month (for certs update)
0 13 */2 * * certbot renew --non-interactive && /etc/init.d/nginx reload

#Решение проблем

Ошибка X509_V_FLAG_NOTIFY_POLICY:

Traceback (most recent call last):
  File "/usr/bin/certbot", line 11, in <module>
    load_entry_point('certbot==0.40.0', 'console_scripts', 'certbot')()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 490, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2854, in load_entry_point
    return ep.load()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2445, in load
    return self.resolve()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2451, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python3/dist-packages/certbot/main.py", line 10, in <module>
    import josepy as jose
  File "/usr/lib/python3/dist-packages/josepy/__init__.py", line 41, in <module>
    from josepy.interfaces import JSONDeSerializable
  File "/usr/lib/python3/dist-packages/josepy/interfaces.py", line 7, in <module>
    from josepy import errors, util
  File "/usr/lib/python3/dist-packages/josepy/util.py", line 7, in <module>
    import OpenSSL
  File "/usr/lib/python3/dist-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import crypto, SSL
  File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1553, in <module>
    class X509StoreFlags(object):
  File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1571, in X509StoreFlags
    NOTIFY_POLICY = _lib.X509_V_FLAG_NOTIFY_POLICY
AttributeError: module 'lib' has no attribute 'X509_V_FLAG_NOTIFY_POLICY'

Здесь варианты как решить — https://stackoverflow.com/questions/73830524/attributeerror-module-lib-has-no-attribute-x509-v-flag-cb-issuer-check

Мне помогло:

rm -rf /usr/lib/python3/dist-packages/OpenSSL
pip3 install pyopenssl
pip3 install pyopenssl --upgrade

 

 

Добавить комментарий