Problém se zabezpečením TLS
Napsal: 29 dub 2026, 20:00
Ahoj. Prosím rozumíte někdo níže popsanému postupu, jak obejít zastaralé zabezpečení TLS u aplikace, kdy server vyžaduje novější zabezpečení TLS ke kterému se aplikace přihlašuje? Netatmo úmyslně neaktualizuje aplikaci, protože už nechce podporovat starší verzi výrobku termostatu, ale někomu se podle níže uvedenému postupu podařilo obejít tento problém. V Linuxu se nevyznám a potřeboval bych poradit s postupem.
• If anyone is still struggling with this and resents having to spend money as a result, I managed to work around it to pair a new relay to my thermostat after the old relay broke. Not an easy solution, but if you're like me and don't want to spend money on a new thermostat, it's worth spending some time. Obviously the Mac app on pairing.netatmo.com doesn't work on modern Macs, so I ended up running the Linux version of the wizard inside an old Ubuntu VM and use nginx locally as a TLS compatibility proxy. This is what I did:
• My setup:
• - Apple Silicon Mac
- UTM
- Ubuntu 18.04.6 x86_64 VM
- Netatmo relay connected by USB and passed through to the VM
- Netatmo Linux pairing wizard from pairing.netatmo.com
• Official wizard download:
wget https://n3twizard.blob.core.windows.net ... nux_x86_64
chmod +x NetatmoThermostat_PairingWizard_Linux_x86_64
• Install dependencies:
sudo apt update
sudo apt install -y nginx curl libssl1.0.0
• Create compatibility SSL links:
mkdir -p ~/netatmo-ssl
ln -sf /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 ~/netatmo-ssl/libssl.so
ln -sf /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 ~/netatmo-ssl/libcrypto.so
• Create a local certificate:
sudo mkdir -p /etc/stunnel/netatmo
cd /etc/stunnel/netatmo
sudo openssl req -x509 -newkey rsa:2048 -nodes -days 365 \
-keyout netatmo-local.key \
-out netatmo-local.crt \
-subj "/CN=app.netatmo.net" \
-addext "subjectAltName=DNS:app.netatmo.net,DNS:fw.netatmo.net"
sudo cp netatmo-local.crt /usr/local/share/ca-certificates/netatmo-local.crt
sudo update-ca-certificates
• Redirect Netatmo hostnames to localhost:
sudo cp /etc/hosts /etc/hosts.netatmo-backup
echo "127.0.0.1 app.netatmo.net fw.netatmo.net" | sudo tee -a /etc/hosts
• Configure nginx:
sudo tee /etc/nginx/sites-available/netatmo-proxy >/dev/null <<'EOF'
server {
listen 443 ssl;
server_name app.netatmo.net fw.netatmo.net;
ssl_certificate /etc/stunnel/netatmo/netatmo-local.crt;
ssl_certificate_key /etc/stunnel/netatmo/netatmo-local.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:@SECLEVEL=0;
location / {
proxy_set_header Host $host;
proxy_ssl_server_name on;
proxy_ssl_name $host;
if ($host = app.netatmo.net) {
proxy_pass https://150.171.109.215;
}
if ($host = fw.netatmo.net) {
proxy_pass https://20.73.144.19;
}
}
}
EOF
sudo rm -f /etc/nginx/sites-enabled/default
sudo ln -sf /etc/nginx/sites-available/netatmo-proxy /etc/nginx/sites-enabled/netatmo-proxy
sudo nginx -t
sudo systemctl restart nginx
• Run the wizard:
cd ~/Desktop
sudo env LD_LIBRARY_PATH=$HOME/netatmo-ssl ./NetatmoThermostat_PairingWizard_Linux_x86_64
• The wizard itself is very straightforward once you get it running.
• If anyone is still struggling with this and resents having to spend money as a result, I managed to work around it to pair a new relay to my thermostat after the old relay broke. Not an easy solution, but if you're like me and don't want to spend money on a new thermostat, it's worth spending some time. Obviously the Mac app on pairing.netatmo.com doesn't work on modern Macs, so I ended up running the Linux version of the wizard inside an old Ubuntu VM and use nginx locally as a TLS compatibility proxy. This is what I did:
• My setup:
• - Apple Silicon Mac
- UTM
- Ubuntu 18.04.6 x86_64 VM
- Netatmo relay connected by USB and passed through to the VM
- Netatmo Linux pairing wizard from pairing.netatmo.com
• Official wizard download:
wget https://n3twizard.blob.core.windows.net ... nux_x86_64
chmod +x NetatmoThermostat_PairingWizard_Linux_x86_64
• Install dependencies:
sudo apt update
sudo apt install -y nginx curl libssl1.0.0
• Create compatibility SSL links:
mkdir -p ~/netatmo-ssl
ln -sf /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 ~/netatmo-ssl/libssl.so
ln -sf /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 ~/netatmo-ssl/libcrypto.so
• Create a local certificate:
sudo mkdir -p /etc/stunnel/netatmo
cd /etc/stunnel/netatmo
sudo openssl req -x509 -newkey rsa:2048 -nodes -days 365 \
-keyout netatmo-local.key \
-out netatmo-local.crt \
-subj "/CN=app.netatmo.net" \
-addext "subjectAltName=DNS:app.netatmo.net,DNS:fw.netatmo.net"
sudo cp netatmo-local.crt /usr/local/share/ca-certificates/netatmo-local.crt
sudo update-ca-certificates
• Redirect Netatmo hostnames to localhost:
sudo cp /etc/hosts /etc/hosts.netatmo-backup
echo "127.0.0.1 app.netatmo.net fw.netatmo.net" | sudo tee -a /etc/hosts
• Configure nginx:
sudo tee /etc/nginx/sites-available/netatmo-proxy >/dev/null <<'EOF'
server {
listen 443 ssl;
server_name app.netatmo.net fw.netatmo.net;
ssl_certificate /etc/stunnel/netatmo/netatmo-local.crt;
ssl_certificate_key /etc/stunnel/netatmo/netatmo-local.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:@SECLEVEL=0;
location / {
proxy_set_header Host $host;
proxy_ssl_server_name on;
proxy_ssl_name $host;
if ($host = app.netatmo.net) {
proxy_pass https://150.171.109.215;
}
if ($host = fw.netatmo.net) {
proxy_pass https://20.73.144.19;
}
}
}
EOF
sudo rm -f /etc/nginx/sites-enabled/default
sudo ln -sf /etc/nginx/sites-available/netatmo-proxy /etc/nginx/sites-enabled/netatmo-proxy
sudo nginx -t
sudo systemctl restart nginx
• Run the wizard:
cd ~/Desktop
sudo env LD_LIBRARY_PATH=$HOME/netatmo-ssl ./NetatmoThermostat_PairingWizard_Linux_x86_64
• The wizard itself is very straightforward once you get it running.