looser27
Goto Top

Unifi mit SSL-Zertifikat aus interner CA

Nach meinen Problemen meinen Unifi-Controller (unter Ubuntu 20.04) mit einem SSL-Zertifikat auszustatten, möchte ich den Lösungsweg für alle Nachahmer nachstellen:

  • Erstellung Zertifikatanfrage

Nachfolgende Befehle funktionieren nur als sudo:

cd /usr/lib/unifi
java -jar lib/ace.jar new_cert unifi.domain.intern FIRMA STADT BUNDESLAND DE
cd data
nano unifi_certificate.csr.pem

Den Inhalt des Zertifikates kopieren und die Webseite der Zertifizierungsstelle öffnen (https://Zertifizierung.domain.intern/certsrv)
Hier ein neues Zertifikat anfordern und die gespeicherte Anforderung in das entsprechende Feld kopieren.

ACHTUNG:
Um die zusätzlichen Attribute nutzen zu können muss die CA dafür vorbereitet sein:

Auf der CA ausführen:
certutil -setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2
net stop certsvc
net start certsvc

HINWEIS:
Diese Funktion kann, wenn sie nicht mehr benötigt wird mit
certutil -setreg policy\EditFlags -EDITF_ATTRIBUTESUBJECTALTNAME2
net stop certsvc
net start certsvc
wieder deaktiviert werden.

Jetzt in den Attributen
san:dns=unifi.domain.intern
eintragen und die Anfrage absenden.

Die Zertifikate jetzt aber nicht über die Webseite, sondern direkt aus der CA herunterladen.

  • Zertifikate aus der CA herunterladen

Unifi Zertifikat exportieren:
unifi

CA Zertifikat exportieren:
ca1
ca2
ca3

Den im CA-Zertifikat enthaltenen privaten Schlüssel benötigen wir später nicht. Dieser kann später entfernt werden.
Ich habe jedoch festgestellt, dass alle anderen Export-Optionen nicht funktionieren im Zusammenhang mit dem Unifi-Controller.

Die beiden Dateien habe ich unifi.p7b und CA.pfx genannt.

  • Zertifikate umwandeln

Die beiden Dateien ins Homeverzeichnis hochladen zur weiteren Bearbeitung:
openssl pkcs7 -inform der -print_certs -in unifi.p7b -out unifi.crt
openssl pkcs12 -in CA.pfx -clcerts -nokeys -out CA.crt

Jetzt mit z.B. nano die beiden Dateien in der Form bearbeiten, dass die Inhalte so aussehen:

unifi.crt
-----BEGIN CERTIFICATE----- ..... -----END CERTIFICATE-----
-----BEGIN CERTIFICATE----- ..... -----END CERTIFICATE-----

CA.crt
-----BEGIN CERTIFICATE----- ..... -----END CERTIFICATE-----

Jetzt diese beiden Zertifikate einbinden mit
java -jar lib/ace.jar import_cert unifi.crt CA.crt

Nach ein paar Sekunden sollte folgendes angezeigt werden:
Certificates successfuly imported. Please restart the UniFi Controller.

Jetzt den Controller neu starten und die Webseite sollte ohne Fehlermeldung geladen werden.

Sollte der Import der Zertifikate fehlschlagen, liegt es meist an den nicht korrekt editierten Zertifikaten!

WICHTIG: Nicht vergessen die Originaldateien unifi.p7b und CA.pfx vom Controller wieder zu entfernen!!!

Content-ID: 667119

Url: https://administrator.de/contentid/667119

Printed on: December 5, 2024 at 15:12 o'clock

C.R.S.
C.R.S. May 27, 2021 updated at 15:33:30 (UTC)
Goto Top
Hallo,

für Java-Keystores fordere ich Zertifikate zwar lieber auf einem separaten Rechner an und spiele dann nur die p12 ein, aber CA-Zertifikate müssten sich in beiden Fällen gleich registrieren lassen, und der gewagte Schlüsselexport zu vermeiden sein (DER-codiert):

keytool -importcert -alias MeineRootCA -keystore /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/cacerts -file /home/user/root.cer

Grüße
Richard
Looser27
Looser27 May 27, 2021 at 16:35:36 (UTC)
Goto Top
Da es sich um eine interne CA handelt, kann man das denke ich riskieren, solange man die privaten Schlüssel wie o.g. anschließend löscht.
ThePinky777
ThePinky777 Aug 15, 2024 updated at 16:12:20 (UTC)
Goto Top
Also wenn man eine Private AD CA hat kann man auch Templates erstellen für Webserver.

dazu auf den CA Server per RDP
dann mmc Konsole Add Snap-In "Certificate Templates"

Da gibts schon "Web Server" das Duplizieren und neuen Namen fürs Template.

Dann Validity Period nach WUnsch, Renewal Period auch.

Bei Lasche "Compatibility" Haken setzen und CA: "Windows Server 2003" und Recipient: "WindowsXP/Server 2003"
Lasche Reques Handling Haken bei "Allow private key to be exportet"
Lasche Security auf Authenticated Users und Haken bei "Enroll" setzen

Nützliches Video dazu
https://www.youtube.com/watch?v=wxgpHOl9_Oo

Dann MMC Snap-In "Certification Authority" hinzufügen
Und aufklappen Ordner "Certificate Templates" da das neue Template rechter Mausklick und NEW "Certificate Template to Issue" und mit OK einbinden.

Nun ist es in der CA da.

Auf irgend nen Server Windows gehen, und MMC > Zertifikate Maschine Snap-In
Ordner "Personal" >> "Certificates" rechter Mausklick All Tasks > Request new Certificate
Paar mal Next bis dann das Template angezeigt wird, haken setzen und die Blaue schrift anklicken

Bei Subject Namen CN=dns namen rein
bei Alternative Name DNS= dns namen rein (2mal einmal DNS Namen einmal nur Hostname)

Bei Lasche "General" kann man Friendly Name setzen damit man es besser findet.
Lasche "Private Key" Option Haken setzen "Make private key exportable"
Dann OK und Enroll....

Status : Succeeded

So und nun ist es in der MMC Console gelistet
Ordner "Personal" >> "Certificates"

Mit rechtem Mausklick exportierbar als .pfx
Bei irgend einem anderen Windows Webservern kann man das einfach so importieren und z.B. im IIS verwenden
Oder erstellt das Zertifikat gleich dort face-smile

Mit openssl kan das .pfx in jede bliebige Form umgewandelt werden so das man die Zertifikate auch für Linux Apache und konsorten verwenden kann.

Auch ne Methode an Zertifikate zu kommen face-smile