Yeni: Yapay zekâ güvenlik duvarı tüm platformu izliyor ve her olayı sade bir dille açıklıyor. Nasıl çalıştığını görün

Laboratuvar Pi 3 üzerinde paho-mqtt, 'certificate is not yet valid' hatasıyla TLS el sıkışmasında başarısız oluyor

Laboratuvar Pi 3 üzerinde paho-mqtt, 'certificate is not yet valid' hatasıyla TLS el sıkışmasında başarısız oluyor

Çözüldü 7 5

Yapay zekâ tarafından English dilinden çevrildi ·

Öğrenci burada, ilk yazım. Bir laboratuvar projesi için toprak nem kaydedicisi yapıyorum: Pi 3, ADS1115 üzerinden kapasitif sensör, paho-mqtt 1.6, 8883 portundan Hermetry’ye gönderim. Ev Wi-Fi’ımda her şey çalışıyor. Laboratuvarda ise her seferinde başarısız oluyor:

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED]
certificate verify failed: certificate is not yet valid (_ssl.c:1006)

Laboratuvar ağı birçok şeyi engelliyor, bu yüzden broker’ın host adı yerine IP adresine bağlanmayı da denedim (evde çözümleyip sabit kodladım) ve bunun üzerine hata bir host adı uyuşmazlığına dönüşüyor. certifi’yi yeniden kurdum ve client.tls_set()‘i ca_certs yolu ile ve yolsuz çağırdım. Hiçbiri işe yaramadı. Laboratuvar güvenlik duvarı TLS’i bozuyor olabilir mi?

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Bu ağda 8883 portu gerçekten açık mı? Bazı yerler yalnızca dışarı çıkışta 80 ve 443’e izin veriyor.

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Açık olmalı, el sıkışma başlıyor, sadece sertifikada hata veriyor.

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Belki broker için bir istemci sertifikasına ihtiyacınız vardır? Hat PC’lerimizde bir tane yüklemek zorunda kalmıştık.

Ground loops are my cardio.
♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Laboratuvardayken Pi üzerinde date ne gösteriyor?

♥ 2

Yapay zekâ tarafından English dilinden çevrildi ·

…geçen yılın Mart ayını gösteriyor. Evde ise doğru.

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Demek ki sorun bu. Pi 3’te gerçek bir gerçek zamanlı saat (RTC) yok. Açılışta, son düzgün kapatmada kaydettiği zamanı geri yüklüyor (fake-hwclock) ve sonra NTP’yi bekliyor. Laboratuvar ağınız NTP’yi (UDP 123) engelliyor, bu yüzden saat geçmişte kalıyor ve TLS kütüphanesi açısından sunucu sertifikası henüz geçerli değil. Kilitli güvenlik duvarlarının arkasındaki sahadaki Pi’lerin yarısında bunu gördüm.Çözümler, birini seçin:

# 1. BT biriminden dahili NTP sunucusunu isteyin ve kullanın
sudo nano /etc/systemd/timesyncd.conf
  [Time]
  NTP=ntp.your-lab.example
sudo systemctl restart systemd-timesyncd
timedatectl   # "System clock synchronized: yes"

# 2. yalnızca 443 açıksa: HTTPS başlıklarından senkronize edin
sudo apt install htpdate
sudo htpdate -s https://www.example.org

Sabit kodlanmış IP’yi kaldırın. Broker SNI gerektirir, bu yüzden ana bilgisayar adıyla bağlanın; sertifika zaten bu ada göre kontrol edilir, uyuşmazlığın nedeni de budur. Sistem CA paketiyle düz client.tls_set() kullanmak uygundur; Tyler, belirteç ile girişlerde istemci sertifikası gerekmez, sunucu bir tane ister ama zorunlu tutmaz.Ayrıca betiğin bağlanmadan önce senkronize bir saati beklemesini sağlayın, aksi halde laboratuvarda bir yeniden başlatma sorunu yeniden oluşturur. timedatectl show -p NTPSynchronized üzerinde kısa bir döngü işe yarar. Ayrıntılar için MQTT sayfasının TLS bölümüne bakın.

If it isn't logged, it didn't happen.
Kabul edilen çözüm♥ 5

Yapay zekâ tarafından English dilinden çevrildi ·

BT bana dahili NTP sunucusunu verdi, saat doğru, ana bilgisayar adı geri eklendi, ilk denemede bağlandı. systemd birimine de senkronizasyon bekleme döngüsü ekledim. Sorunun tarih olduğuna inanamıyorum.

♥ 0
8 yazı görüntüleniyor – 1 ile 8 arası (toplam 8)
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.

Sohbete katılın

Soru sormak ve yanıtlamak, yararlı gönderileri beğenmek ve sorununuzu çözen yanıtı işaretlemek için oturum açın. Her katkı puan ve seviye kazandırır.

Paylaş