[tutorial] Raspberry Pi – Docker, Proxy, Let’s Encrypt, SUPLA, SUPLA-Scripts...

User avatar
Goral64
Posts: 3258
Joined: Fri Dec 27, 2019 6:22 pm
Location: Żerniki Wrocławskie
Has thanked: 2 times
Been thanked: 1 time

Post

podlak wrote: Tue May 26, 2020 1:41 pm OK, jak to zrobić to spróbuję?
Zainstaluj openssl jeśli jeszcze nie masz i utwórz klucz oraz certyfikat poleceniem:

Code: Select all

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ./private.key -out ./certificate.crt
W pliku ./private.key masz klucz prywatny, w pliku ./certificate.crt masz certyfikat ważny przez rok.
Przy podawaniu danych do certyfikatu w Common Name możesz spokojnie podać adres IP, jeśli nie korzystasz z domeny.
Widzimy się na Supla Offline Party Season 2026 :D

Image
podlak
Posts: 18
Joined: Tue May 26, 2020 11:43 am

Post

Cześć,
wygenerowalem certyfikat i podmieniłem go w podfolderze /ssl/cloud i /ssl/server (podmieniam w obu?).
Po restarcie i wpisaniu adresu przeglądarka widzi certyfikat, ale traktuje go nadal jako nieważny/nie zaufany.
W HA bez zmian:

Code: Select all

2020-05-29 22:49:40 ERROR (SyncWorker_15) [homeassistant.components.supla] Server: 192.168.1.130 not configured. Error on Supla API access: 
traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py", line 488, in wrap_socket
    cnx.do_handshake()
  File "/usr/local/lib/python3.7/site-packages/OpenSSL/SSL.py", line 1934, in do_handshake
    self._raise_ssl_error(self._ssl, result)
  File "/usr/local/lib/python3.7/site-packages/OpenSSL/SSL.py", line 1671, in _raise_ssl_error
    _raise_current_error()
  File "/usr/local/lib/python3.7/site-packages/OpenSSL/_util.py", line 54, in exception_from_error_queue
    raise exception_type(errors)
OpenSSL.SSL.Error: [('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 677, in urlopen
    chunked=chunked,
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 381, in _make_request
    self._validate_conn(conn)
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 976, in _validate_conn
    conn.connect()
  File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 370, in connect
    ssl_context=context,
  File "/usr/local/lib/python3.7/site-packages/urllib3/util/ssl_.py", line 390, in ssl_wrap_socket
    return context.wrap_socket(sock)
  File "/usr/local/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py", line 494, in wrap_socket
    raise ssl.SSLError("bad handshake: %r" % e)
ssl.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])",)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 725, in urlopen
    method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
  File "/usr/local/lib/python3.7/site-packages/urllib3/util/retry.py", line 439, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='192.168.1.130', port=443): Max retries exceeded with url: /api/v2.3.0/server-info (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])")))
Co robię źle?
Wezmę udział w Supla Offline Party 2023. Weź udział i Ty.
podlak
Posts: 18
Joined: Tue May 26, 2020 11:43 am

Post

Nikt nie ma pomysłu?
Wezmę udział w Supla Offline Party 2023. Weź udział i Ty.
User avatar
Goral64
Posts: 3258
Joined: Fri Dec 27, 2019 6:22 pm
Location: Żerniki Wrocławskie
Has thanked: 2 times
Been thanked: 1 time

Post

Przeglądarki domyślnie nie ufają samopodpisanym certyfikatom. Możesz jednak dla takich certyfikatów robić wyjątki i kazać przeglądarce aby je akceptowała.
Widzimy się na Supla Offline Party Season 2026 :D

Image
podlak
Posts: 18
Joined: Tue May 26, 2020 11:43 am

Post

Tak, wiem, że można to ogarnąć w przeglądarce, nawet udało mi się wygenerować certyfikat z własnego CA, które zaciągnełem pod Windowsem do listy zaufanych CA. Problem jaki mam, to żeby HomeAssistant zaakceptował certyfikat do strony, po wrzuceniu namiarów na serwer lokalny i po podaniu tokena Supli mam komunikaty, że HA odrzuca połączenie ze względu na niezaufany certyfikat. Nie mam pojęcia jak to zrobić, żeby HA połaczyło się z dokerem Supla. Oba HA i doker chodzą na tym samym serwerze ubuntu i tym samym ip.
Wezmę udział w Supla Offline Party 2023. Weź udział i Ty.
User avatar
Goral64
Posts: 3258
Joined: Fri Dec 27, 2019 6:22 pm
Location: Żerniki Wrocławskie
Has thanked: 2 times
Been thanked: 1 time

Post

Może gdzieś w konfiguracji HA można ustawić, żeby nie weryfikował certyfikatu?
Spróbuj poszukać odpowiedzi na forach HA, pewnie ktoś już coś takiego miał i znalazł rozwiązanie.
Widzimy się na Supla Offline Party Season 2026 :D

Image
plnuker
Posts: 98
Joined: Sun Dec 30, 2018 10:11 pm

Post

Goral64 wrote: Fri Jun 05, 2020 9:36 pm Może gdzieś w konfiguracji HA można ustawić, żeby nie weryfikował certyfikatu?
Spróbuj poszukać odpowiedzi na forach HA, pewnie ktoś już coś takiego miał i znalazł rozwiązanie.
Jeszcze może być kwestia samego certa. Od jakiegoś czasu przeglądarki i inne usługi (zgodnie z rfc) używają SAN - service alternative name zamiast CN - common name.
extrememario
Posts: 24
Joined: Tue Aug 27, 2019 5:27 am

Post

Witam,
Jak zmienić na własnej instancji SUPLA Limit żądań do API?
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

W prywatnych instancjach chyba domyślnie to jest wyłączone, ale jeśli nie to z poziomu bin/console możesz to zmienić
SUPLA.... Nareszcie w domu.
extrememario
Posts: 24
Joined: Tue Aug 27, 2019 5:27 am

Post

Czyli rozumiem, że jakaś komenda jest? A możesz napisać jaka?

Return to “FAQ / Jak to zrobić”