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

Awatar użytkownika
Goral64
Posty: 3132
Rejestracja: pt gru 27, 2019 6:22 pm
Lokalizacja: Żerniki Wrocławskie
Kontakt:

podlak pisze: wt maja 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:

Kod: Zaznacz cały

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 2 :D

Obrazek
podlak
Posty: 18
Rejestracja: wt maja 26, 2020 11:43 am

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:

Kod: Zaznacz cały

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
Posty: 18
Rejestracja: wt maja 26, 2020 11:43 am

Nikt nie ma pomysłu?
Wezmę udział w Supla Offline Party 2023. Weź udział i Ty.
Awatar użytkownika
Goral64
Posty: 3132
Rejestracja: pt gru 27, 2019 6:22 pm
Lokalizacja: Żerniki Wrocławskie
Kontakt:

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 2 :D

Obrazek
podlak
Posty: 18
Rejestracja: wt maja 26, 2020 11:43 am

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.
Awatar użytkownika
Goral64
Posty: 3132
Rejestracja: pt gru 27, 2019 6:22 pm
Lokalizacja: Żerniki Wrocławskie
Kontakt:

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 2 :D

Obrazek
plnuker
Posty: 97
Rejestracja: ndz gru 30, 2018 10:11 pm

Goral64 pisze: pt cze 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
Posty: 9
Rejestracja: wt sie 27, 2019 5:27 am

Witam,
Jak zmienić na własnej instancji SUPLA Limit żądań do API?
Awatar użytkownika
pzygmunt
Posty: 18333
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontakt:

W prywatnych instancjach chyba domyślnie to jest wyłączone, ale jeśli nie to z poziomu bin/console możesz to zmienić
extrememario
Posty: 9
Rejestracja: wt sie 27, 2019 5:27 am

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

Wróć do „FAQ / Jak to zrobić”