Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Personal Electrum server with a private-CA/self-signed certificate no longer syncs over TLS: expose gdk's electrum_tls_validate_domain (or certificate pinning)

Đang mở
#101 2 bình luận 0 reaction 1 người được giao Xem trên GitHub

@ardier16 đang làm issue này rồi.

Từ ngày 19/10/2026.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
57/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
swift
Lĩnh vực
mobile, security

Hướng nghiên cứu

Start with core/gdk/models/ConnectionParams.swift and trace how Custom Server Settings passes network parameters, including the existing TLS toggle. The requested setting should control electrum_tls_validate_domain when TLS is enabled; done means a personal Electrum server with a private CA can sync, with the setting visible in Custom Server Settings. The issue names no test file, so find the relevant settings and connection parameter tests before changing behavior.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug status: confirmed

Summary

Since gdk started validating Electrum TLS certificates by default, the iOS app can no longer use a personal Electrum server whose certificate isn't signed by a public CA. That covers most self-hosted node platforms, which sign with their own local CA. gdk already has an opt-out, electrum_tls_validate_domain, but the iOS app doesn't pass it and has no setting for it. Please expose it.

What changed (gdk)

  • bdce1c3 (2026-08-04) — "validate domain by default for TLS electrum connections": the default for ElectrumUrl::Tls moved from false to true.
  • 99e664d (2026-08-13) — Electrum moved from OpenSSL to rustls (electrum-client 0.24.1, use-rustls-ring). Validation now uses the bundled webpki_roots::TLS_SERVER_ROOTS only, so a CA the user has installed on the iPhone is not trusted.
  • f64fe2f (2026-08-18) — added the electrum_tls_validate_domain network parameter to turn validation off. It is in release_0.77.9 and release_0.78.0.

What's missing (green_ios)

core/gdk/models/ConnectionParams.swift sends electrum_url, electrum_onion_url, electrum_tls and use_tor, but not electrum_tls_validate_domain. App Settings → Custom Server Settings has only "Enable TLS", so validation is always on. Checked against master at 131f820 (2026-09-22), which fetches gdk release_0.78.0.

What the user sees

With Personal Electrum Server + Enable TLS pointed at a self-hosted Fulcrum, the wallet still opens, but it stops syncing. It shows cached history only, from around the date the app updated. On the server side, every connection ends in a failed TLS handshake and is retried every couple of seconds. Nothing in the app showed that the server was being rejected for its certificate. The same server works with any client that trusts its CA.

Request

One of:

  1. Preferred: let the user pin the server's certificate or CA (a fingerprint or a pasted PEM) for the personal server. That keeps TLS authenticated. As far as I can see, gdk would need a parameter for this.
  2. A "Validate server certificate" toggle under Custom Server Settings, shown when TLS is on, that sets electrum_tls_validate_domain: false. gdk already supports it.
  3. At least a visible error when the personal server's TLS certificate is rejected, instead of silently showing stale history.

Workaround in use

Connect with Tor, TLS off, and a plain-TCP onion address for the same Fulcrum. It works because the onion address authenticates the server, but it is slower than a direct LAN connection.

Ngôn ngữ chính
Swift
Star
163
Fork
67
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của Blockstream/green_ios

Tất cả issue của Blockstream/green_ios

Issue tương tự

Thêm issue về Swift

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.