Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[bug] VPN-Client template allows VPN server change after device attachment, causing CA/certificate mismatch

オープン
#1,397 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

  • #1400 @SurbhiAgarwal1 による — マージされずにクローズ

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
48/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
静か
技術スタック
django, python

調査の方向性

再現手順で説明されている VPN-client テンプレートの更新フローから始め、vpn フィールドの変更が、関連付けられたデバイス、VpnClient レコード、レンダリングされた構成、証明書にどのような影響を与えるかを追跡します。検証パスと管理パスを比較し、割り当て済みのテンプレートを保存したときに、ユーザーが理解できるブロックが表示されるか、目立つ再プロビジョニング警告が表示され、CA の不一致を残さないことを確認します。

索引モデルが issue の本文から書いたものです。

説明

blocked bug

Describe the bug
A VPN-type template that is already attached to a device can have its VPN server field changed without any validation or warning. When the template is pointed at a different VPN server, the existing device continues to hold a certificate that was signed by the original VPN server's CA. The new VPN server uses a different CA and will reject the device's certificate during the TLS handshake, silently dropping the device off the VPN with no error shown in the admin UI.

Steps To Reproduce

  1. Create a CA and a VPN server (Server A) using that CA.
  2. Create a VPN-client template pointing to Server A.
  3. Create a device and attach the template to it, a VpnClient record and certificate signed by Server A's CA are created.
  4. Create a second VPN server (Server B) using a different CA.
  5. Open the template and change the VPN field from Server A to Server B.
  6. Save the template.
  7. Observe that the device's rendered configuration now references Server B, but the enrolled certificate is still signed by Server A's CA, which Server B does not trust.

Expected behavior
Changing the vpn field on a template that is already assigned to one or more devices should either be blocked with a user-readable validation error, or the admin should display a prominent warning that all enrolled devices will have a CA/certificate mismatch and must be re-provisioned.

Screenshots
N/A

System Informatioon:

  • OS: Fedora 42
  • Python Version: Python 3.13
  • Django Version: Django 5.2.14
  • Browser and Browser Version (if applicable): Firefox
主要言語
Python
スター
779
フォーク
328
平均マージ
2日 19時間
マージ済み PR(30日)
7

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

openwisp/openwisp-controller のほかの issue

openwisp/openwisp-controller の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。