Создание сертификата и заметки по решению проблем (применительно к 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