Значит, не работает ваш редирект и запрос http идет на порт, где ожидается https.
Предположения такие:
- есть какой-то еще механизм редиректа, например, перенаправление с 80 на 443 порт iptables
- что-то вы не показали в конфиге nginx (вообще, директива ssl on - устарела, попробуйте убрать ее отовсюду и сделайте listen 443 ssl;)
- самый глупый вариант, но тем не менее: запрос на урл site.ru:443
Я спрашивал, что именно происходит. Идет ли http запрос? Какой на него ответ? Какой код? 301? Есть ли в ответе заголовок Location и куда он указывает? На нужный ли url с https? Происходит ли обращение по адресу с https? Ошибка на каком этапе появляется?
Публичными надо делать те методы и свойства, которые являются, условно говоря, частью интерфейса, который ваш модуль предоставляет его пользователям.
Если вы делаете публичным то, что не является интерфейсом, а скорее часть реализации, внутренняя кухня вашего модуля, то кто-то (а то и вы сами) может задействовать это в своем коде. А потом захотите на своей внутренней кухне переставить кастрюли (изменить реализацию), и услышите мат из-за соседнего компа.
Права-то будут переданы, но если утилита - скрипт (не исполняемый файл), фокус с suid не сработает.
В этом случае сложно что-то советовать, не зная, какую задачу вы решаете. Можно сделать alias для пользователя, который запускает скрипт: alias superapp='sudo app'
Но надо чтобы shell пользователя был interactive (например, при запуске из cron это не так).
Из питона, кстати, можно вызвать что угодно, хоть с sudo, хоть без.
Предположения такие:
- есть какой-то еще механизм редиректа, например, перенаправление с 80 на 443 порт iptables
- что-то вы не показали в конфиге nginx (вообще, директива ssl on - устарела, попробуйте убрать ее отовсюду и сделайте listen 443 ssl;)
- самый глупый вариант, но тем не менее: запрос на урл site.ru:443