Strongswan Zertifikate
Hallo zusammen,
ich schon wieder
Ich habe einen Jumphost mit strongswan erstellt nach dieser Anleitung von aqui: Jumphost-Anleitung
Jetzt ist es ja so, dass in dieser Anleitung erklärt wird wie man das mit den Zertifikaten macht, also die werden im Zuge der Anleitung erstellt und eins von denen muss dann auf das Endgerät eingefügt werden usw.
Kann man das ganze auch mit letsencrypt Zertifikaten machen, also damit man das Zertifikat nicht extra auf jedem Endgerät händisch hinzufügen muss ? Und wenn ja wie genau mache ich das ?
Ich hatte einfach mal ein gültiges SSL Zertifikat mit letsencrypt erstellt für die domain die in der ikev2.conf unter "id = fqdn:" steht und das in den Ordner /swanctl/x509 gepackt. Dann in der ikev2.conf unter "certs =" den Namen des Zertifikats angegeben und den strongwan neu gestartet.
Das klappte dann leider nicht. Das Zertifikat ist im .pem Format aber ich glaube das Problem ist, bzw ist unter anderem, dass ich auch keine .key Datei für das Zertifikat habe.
Erstellt wurde das Zertifikat auf einem kemp Loadmaster und als Download bekomme ich dann allerdings nur eine .pem Datei.
Vielleicht kann mir jemand genau erklären ob und wie das ganze funktioniert.
VG
ich schon wieder
Ich habe einen Jumphost mit strongswan erstellt nach dieser Anleitung von aqui: Jumphost-Anleitung
Jetzt ist es ja so, dass in dieser Anleitung erklärt wird wie man das mit den Zertifikaten macht, also die werden im Zuge der Anleitung erstellt und eins von denen muss dann auf das Endgerät eingefügt werden usw.
Kann man das ganze auch mit letsencrypt Zertifikaten machen, also damit man das Zertifikat nicht extra auf jedem Endgerät händisch hinzufügen muss ? Und wenn ja wie genau mache ich das ?
Ich hatte einfach mal ein gültiges SSL Zertifikat mit letsencrypt erstellt für die domain die in der ikev2.conf unter "id = fqdn:" steht und das in den Ordner /swanctl/x509 gepackt. Dann in der ikev2.conf unter "certs =" den Namen des Zertifikats angegeben und den strongwan neu gestartet.
Das klappte dann leider nicht. Das Zertifikat ist im .pem Format aber ich glaube das Problem ist, bzw ist unter anderem, dass ich auch keine .key Datei für das Zertifikat habe.
Erstellt wurde das Zertifikat auf einem kemp Loadmaster und als Download bekomme ich dann allerdings nur eine .pem Datei.
Vielleicht kann mir jemand genau erklären ob und wie das ganze funktioniert.
VG
Please also mark the comments that contributed to the solution of the article
Content-ID: 74017478011
Url: https://administrator.de/contentid/74017478011
Printed on: October 6, 2024 at 16:10 o'clock
3 Comments
Latest comment
Zitat von @entfernt:
Kann man das ganze auch mit letsencrypt Zertifikaten machen, also damit man das Zertifikat nicht extra auf jedem Endgerät händisch hinzufügen muss ? Und wenn ja wie genau mache ich das ?
Kann man wenn man will, die Zertifikate haben die Zertifikatsextension für Client-Authentication.Kann man das ganze auch mit letsencrypt Zertifikaten machen, also damit man das Zertifikat nicht extra auf jedem Endgerät händisch hinzufügen muss ? Und wenn ja wie genau mache ich das ?
Aufwand ist es aber der selbe, du lässt das Cert halt bei LetsEncrypt erstellen statt mit deiner eigenen CA.
Bei LE musst du halt alle 3 Monate erneuern, bei deiner eigenen CA bestimmst du das selbst.
Ich hatte einfach mal ein gültiges SSL Zertifikat mit letsencrypt erstellt für die domain die in der ikev2.conf unter "id = fqdn:" steht und das in den Ordner /swanctl/x509 gepackt. Dann in der ikev2.conf unter "certs =" den Namen des Zertifikats angegeben und den strongwan neu gestartet.
Das reicht nicht, du musst dir die Let's Encrypt CA Zertifkate und das Intermediate Zertifikat (R3) herunterladen und in den "x509ca" Ordner auf dem strongswan Server speichern, sonst wird der CA in strongswan nicht vertraut und den ausgestellten Zertfikaten ebenso nicht vertraut.Das klappte dann leider nicht. Das Zertifikat ist im .pem Format aber ich glaube das Problem ist, bzw ist unter anderem, dass ich auch keine .key Datei für das Zertifikat habe.
Erstellt wurde das Zertifikat auf einem kemp Loadmaster und als Download bekomme ich dann allerdings nur eine .pem Datei.
Erstellt wurde das Zertifikat auf einem kemp Loadmaster und als Download bekomme ich dann allerdings nur eine .pem Datei.
Bei Lets Encrypt erstellt man sich selbst den private Key und lässt sich dann über den CSR das Zertifikat (public key) von Lets Encrypt ausstellen. Beide Teile bilden eine Einheit und werden für die Einwahl benötigt.
Mach die Datei mal mit eine Editor auf und schau rein. Manchmal sind private Key als auch public Key in einem PEM vereint hinterlegt. Das kann man dann auftrennen und in separate Dateien für private und public Key speichern.
Denn auf dem Client brauchst du sowohl den private als auch den public key, ohne private Key keine Einwahl ...
Lets' Encrypt macht aber auch nur Sinn wenn man einen FQDN also eine Domain auf der Client-Seite verwendet, denn E-Mail bzw. Client-/Key-ID supported LE ja nicht.
Habe ich gerade mal im Lab mit LE Certs erfolgreich getestet, wie erwartet lüppt, hier der Log vom Server (strongswan)
04[ENC] parsed IKE_AUTH request 1 [ IDi AUTH CERT IDr N(INIT_CONTACT) SA TSi TSr ]
04[IKE] received end entity cert "CN=domain.de"
04[CFG] looking for peer configs matching 5.6.7.8[client.domain.de]...1.2.3.4[server.domain.de]
04[CFG] selected peer config 'IKEv2-LetsEncrypt'
04[CFG] using trusted certificate "CN=server.domain.de"
04[CFG] using trusted intermediate ca certificate "C=US, O=Let's Encrypt, CN=R3"
04[CFG] using trusted ca certificate "C=US, O=Internet Security Research Group, CN=ISRG Root X1"
04[CFG] reached self-signed root ca with a path length of 1
04[CFG] checking certificate status of "CN=client.domain.de"
04[CFG] ocsp response is valid: until Jan 17 20:08:58 2024
04[CFG] using cached ocsp response
04[CFG] certificate status is good
04[CFG] checking certificate status of "C=US, O=Let's Encrypt, CN=R3"
04[CFG] fetching crl from 'http://x1.c.lencr.org/' ...
04[CFG] using trusted certificate "C=US, O=Internet Security Research Group, CN=ISRG Root X1"
04[CFG] crl correctly signed by "C=US, O=Internet Security Research Group, CN=ISRG Root X1"
04[CFG] crl is valid: until Mar 12 00:59:59 2024
04[CFG] certificate status is good
04[IKE] authentication of 'client.domain.de' with ECDSA-256 signature successful
04[IKE] authentication of 'server.domain.de' (myself) with ECDSA-256 signature successful
04[IKE] sending end entity cert "CN=server.domain.de"
04[IKE] sending issuer cert "C=US, O=Let's Encrypt, CN=R3"
04[IKE] IKE_SA IKEv2-LetsEncrypt[5] established between 5.6.7.8[domain.de]...1.2.3.4[domain.de]
04[CFG] selected proposal: ESP:AES_CBC_256/HMAC_SHA2_256_128/NO_EXT_SEQ
04[IKE] CHILD_SA net{2} established with SPIs ccc0c3ea_i 0fba6f24_o and TS 192.168.20.0/24 === 192.168.100.0/24
04[ENC] generating IKE_AUTH response 1 [ IDr CERT CERT AUTH SA TSi TSr ]
04[ENC] splitting IKE message (2640 bytes) into 3 fragments
04[ENC] generating IKE_AUTH response 1 [ EF(1/3) ]
04[ENC] generating IKE_AUTH response 1 [ EF(2/3) ]
04[ENC] generating IKE_AUTH response 1 [ EF(3/3) ]
Hier meine Test-Strongswan Config am Server
connections {
IKEv2-LetsEncrypt {
local_addrs = 5.6.7.8
remote_addrs = 1.2.3.4
local {
auth = pubkey
id = server.domain.de
}
remote {
auth = pubkey
id = client.domain.de
}
children {
net {
local_ts = 192.168.20.0/24
remote_ts = 192.168.100.0/24
esp_proposals = aes256-aes128-sha256-sha1-modp2048-modp1024
rekey_time = 1h
}
}
rekey_time = 4h
version = 2
send_cert = always
unique = replace
dpd_delay = 300
proposals = aes256-aes128-sha256-sha1-modp2048-modp1024
}
}
Certs
Private Key Server
Public Key Server
CA Certs Letsencrypt
Danach noch ein
swanctl -q
zum reload sämtlicher Connections und Zertifikaten.pj
Zitat von @entfernt:
Nur nochmal kurz für das Verständnis bevor ich jetzt teste.
Ich muss das Zertifikat zwar alle 3 Monate erneuern (wobei ich hier dann gucken will dass ich das alles automatisiere) aber am Ende fällt dadurch weg das ich auf dem Endgerät das Zertifikat vorher in den Zertifikatsspeicher einspielen muss, richtig ?
Nur nochmal kurz für das Verständnis bevor ich jetzt teste.
Ich muss das Zertifikat zwar alle 3 Monate erneuern (wobei ich hier dann gucken will dass ich das alles automatisiere) aber am Ende fällt dadurch weg das ich auf dem Endgerät das Zertifikat vorher in den Zertifikatsspeicher einspielen muss, richtig ?
Nein, bei beiden muss es in den Speicher, egal ob LE oder selbst signiert. Bei Window/Linux entfällt nur der Import der CA. Ansonsten bleibt der Aufwand gleich. Da man meist eh ein PFX verteilt in dem auch das CA Cert enthalten ist ist der Aufwand dann eher höher weil du mit LE alle 3 Monate ran musst statt bei self signed in einem Zeitraum den du selbst wählen kannst ...