использование certbot-auto для nginx

у меня работает nginx. Теперь я хочу, чтобы мой nginx использовал SSL:

certbot-auto --nginx -d my.domain.com -n --agree-tos --email admin@mail.com

выход:

Performing the following challenges:
tls-sni-01 challenge for my.domain.com
Cleaning up challenges
Cannot find a VirtualHost matching domain my.domain.com.

my.domain.com указывает на IP-адрес моего сервера. Это его dns-имя. Что я делаю не так? Я уже сделал это для apache, и он работал нормально. Мой nginx работает (и я не могу перезапустить его вручную после certbot-auto но это не было необходимо, когда я использовал certbot-auto --apache

2 ответов


в моем случае мне пришлось добавить строку "server_name", потому что она не была в моей конфигурации nginx, поэтому она давала мне сообщение об ошибке "не удается найти соответствующий домен VirtualHost my.domain.com" когда я бежал:

certbot --nginx

убедитесь, что это в ваш конфиг:

server {
    server_name my.domain.com;
    ....
}

вероятно, отсутствуют некоторые файлы серверных блоков (виртуальных хостов) в папке с поддержкой сайтов. Проверьте, существуют ли ваши файлы конфигурации в /etc/nginx/sites-available и /etc/nginx/sites-enabled. Если они отсутствуют в папке с поддержкой сайтов, создайте для них символические ссылки:

$ sudo ln -s /etc/nginx/sites-available/my.domain.com /etc/nginx/sites-enabled/

добавьте свой сайт, проверьте ошибки конфигурации и перезапустите nginx:

$ sudo certbot --nginx -d my.domain.com
$ sudo nginx -t
$ sudo service nginx restart