Certbot reads Nginx config from /etc/nginx/
by default.
It won't work when Nginx has a different config path.
nginx -c
can make it work but fails after an Nginx restart.
In addition to an Nginx binary rebuild with --conf-path=/etc/nginx/nginx.conf
Here comes the trick......
$ mkdir /etc/nginx $ cp /usr/local/nginx/conf/* /etc/nginx/ $ mv /usr/local/nginx/conf /usr/local/nginx/conf_bak # Make a symbolic link to your Nginx config path $ ln -s /etc/nginx/ /usr/local/nginx/conf