🔐 Hoe gebruik je Public en Private Keys in WireGuard?

WireGuard gebruikt public key cryptografie (ook wel "asymmetrische encryptie") om veilige verbindingen op te zetten. Hierbij heb je twee sleutels per apparaat:


🔁 Hoe werkt dit in de praktijk?

Denk aan het als een soort slot en sleutel mechanisme:

Alleen de juiste sleutel (private key) past op het slot (public key), en andersom werkt het niet.

In WireGuard:


🔑 Sleutels genereren en uitwisselen

Bijvoorbeeld:

  Server Client (mobiele telefoon)
Private Key S_PRIV_KEY (geheim) C_PRIV_KEY (geheim)
Public Key S_PUB_KEY (maggedeeld worden) C_PUB_KEY (mag gedeeld worden)

Je doet dan het volgende:

Screenshot_20250525_090648.png

In Debian, waar ik zelf mee werk, maak je een keypair als volgt aan:

Create the private key for WireGuard and change its permissions using the following command:

wg genkey | tee /etc/wireguard/private.key && chmod go= /etc/wireguard/private.key

The next step is to create the corresponding public key derived from the private key. Use the following command to create the public key file:

cat /etc/wireguard/private.key | wg pubkey | tee /etc/wireguard/public.key

🛠 Voorbeeldconfiguratie (basis)

🛠 Voorbeeldconfiguratie (basis)

Serverconfig (bijv. OPNsense WireGuard instance):

[Interface]
PrivateKey = S_PRIV_KEY
Address = 10.6.0.1/24
ListenPort = 51820

[Peer]
PublicKey = C_PUB_KEY
AllowedIPs = 10.6.0.2/32

Clientconfig (mobiele telefoon):

[Interface]
PrivateKey = C_PRIV_KEY
Address = 10.6.0.2/24

[Peer]
PublicKey = S_PUB_KEY
Endpoint = jouw.domein.nl:51820
AllowedIPs = 0.0.0.0/0, ::/0

🔒 Belangrijk


ChatGPT Image May 25, 2025, 08_54_47 AM.png


Revisie #4
Gemaakt: 25 mei 2025 16:06:37 door Gert
Bijgewerkt: 26 mei 2025 06:20:14 door Gert