GET запросы на локальный сервер

Всем привет.
Запустил на малинке локальный сервер. Порт 9443. Приложение на смартфоне коннектится, все хорошо.
Я так понял это порт https следовательно нужен сертификат.
Но когда пытаюсь через скрипт на питоне отправить GET запрос, то не выходит. Выдает ошибку, что сертификат не верифицирован.

На стороне сервера в файл server.properties пробовал прописывать как родные сертификаты:

server.ssl.cert=/etc/ssl/certs/ca-certificates.crt
server.ssl.key=
server.ssl.key.pass=

так и сгенерированные :
server.ssl.cert=/home/pi/server.crt
server.ssl.key=/home/pi/server.pem
server.ssl.key.pass=12345?

как и без них совсем.

код на питоне:

 http = urllib3.PoolManager(cert_reqs='CERT_REQUIRED', ca_certs='/etc/ssl/certs/ca-certificates.crt')
# http = urllib3.PoolManager(cert_reqs='CERT_REQUIRED', ca_certs=certifi.where()) 

def set_pin(pin, value):
blynk_server='192.168.1.252:9443'
r = http.request('GET', 'https://' + blynk_server + '/' + auth_token + "/update/" + str(pin) + "?value=" + str(value))
print(r.status)

Но в любом случае не принимает…пожалуйста подскажите как правильно сделать!

Добрый день. Я не знаком с питоном, но думаю как-то так - https://stackoverflow.com/questions/30405867/how-to-get-python-requests-to-trust-a-self-signed-ssl-certificate

@Dmitriy This was a double posted topic… I guess you resurrected it?

Anyhow, as per my answer on the other topic, I don’t think Blynk Python supports SSL or HTTP API yet.

Yes. I didn’t see another one.

The question actually specific to the self generated certificates.

OK, keep this topic then, not the other?

Let’s leave both :slight_smile:.

1 Like

Дабы не начинать новую тему, спрошу тут. Насколько я понял, для того, чтобы отследить изменения которые сделаны в приложении, “железо” должно опрашивать сервер. (Прошу не пинать строго, я тут в первый раз)

Да. нужно запросить состояние по нужным пинам - http://docs.blynk.cc/#blynk-main-operations-state-syncing-for-hardware

И опрашивать рекомендуют не чаще 10 раз в секунду, если я правильно понял из примеров.

Это нужно только если железо потеряло связь с сервером. В обычно режиме значниея будут приходить без опроса.

А в случае использования HTTP RESTful API значения также будут приходить без опроса, или всё-таки опрашивать?

В случае шттп нужно опрашивать.

Вобщем сделал передачу запросов на порт 8080, причем urllib3 почему-то не могла связаться, возвращался код 404, использовал requests и успешно заработало:

r = requests.get(“http://” + blynk_server + “:” + str(blynk_port) + “/” + auth_token + “/update/” + str(pin) + “?value=” +
str(value), verify=True)
print(r.status_code)

Если у Вас есть домен можете попробовать Let’s Encrypt сертификаты сгенерировать - https://github.com/blynkkk/blynk-server#automatic-lets-encrypt-certificates-generation