SSL-Zertifikat des Unifi Wifi Controller austauschen

Wer den Ubiquiti Unifi Wlan Controller nutzt wird vielleicht schon über das mitgelieferte, selbsterstellte Zertifikat gestolpert sein. Das ganze führt auf der Adminoberfläche zu einer kleinen Fehlermeldung die soweit aber noch nicht so dramatisch ist. Nutzt man noch das Gästeportal bekommen jedoch auch alle Clients mit ihrem Smartphone eine Fehlermeldung, wenn auf die Loginseite mit HTTPS weitergeleitet wird.
Leider gibt es noch keine Möglichkeit das Zertifikat über die Admin Oberfläche auszutauschen. Jedoch per Kommandozeile, wie ich hier kurz beschreibe. Ich verwende den Windows Controller. Die Prozedur sollte unter Linux bis auf die Pfade nicht viel anders sein.
Ausgangslage ist ein bereits erstelltes Zertifikat was in Form eines PFX vorliegt. (Der Windows-Standard, wenn man ein Zertifikat exportiert.)
[stextbox id=’alert‘]Vorher unbedingt eine Sicherungskopie des Keystore machen und den Unifi Controller beenden.
(C:\Users\Dein-User\Ubiquiti UniFi\data\keystore)[/stextbox]

Alias des Zertifikats anzeigen lassen:

cd C:\Users\constey\Ubiquiti UniFi\data\
"C:\Program Files\Java\jre1.8.0_131\bin\keytool" -list -keystore mein-eigenes-zertifikat.pfx -storetype pkcs12
Enter keystore password:
Keystore type: PKCS12
Keystore provider: SunJSSE
Your keystore contains 1 entry
1, 16.05.2017, PrivateKeyEntry,
Certificate fingerprint (SHA1): 97:CE:EE:22:3A:B4:1C:76:C5:D5:A6:7A:FB:17:EB:60:
7B:C3:E2:E3

Die erste Zahl (1, 16.05.2017) gibt an welcher Alias das Zertifikat in dem PFX hat. In meinem Fall ist in dem PFX nur ein Zertifikat enthalten, evtl. kann aber z.B. noch das Root Zertifikat enthalten sein – dann muss man die Fingerabdrücke vergleichen und den korrekten Alias auswählen.

cd C:\Users\constey\Ubiquiti UniFi\data\
"C:\Program Files\Java\jre1.8.0_131\bin\keytool" -importkeystore -srcstoretype pkcs12 -srcalias 1 -srckeystore mein-eigenes-zertifikat.pfx -keystore keystore -destalias unifi
Enter destination keystore password:
Enter source keystore password:
Existing entry alias 1 exists, overwrite? [no]: yes

Das Passwort für den keystore lautet: aircontrolenterprise
Zum Abschluss den Unifi Controller wieder starten.

Vmware View Horizon 7 – SSL Zertifikat austauschen

Für ein Testsystem habe ich den neuen View Horizon 7 Connection Server installiert und wollte das selbstsignierte Zertifikat durch ein Zertifikat der Windows CA austauschen.
Normalerweise hat es immer geklappt über die MMC einfach ein neues Computerzertifikat zu erzeugen, und den Friendly Name umzusetzen.
Jedoch bekam ich diesmal folgende Fehlermeldung:

2016-07-12T08:44:31.019+02:00 INFO (1188-0C10) <Thread-1> [v] The Secure Gateway Server is checking for connection attempts on http://*, port:80
2016-07-12T08:44:31.065+02:00 INFO (1188-0C10) <Thread-1> [v] The Secure Gateway Server is using SSL certificate store of type KeyVault
2016-07-12T08:44:31.065+02:00 WARN (1188-0C10) <Thread-1> [KeyVaultKeyStore] (NetHandler) Failed to get certificate chain for: "vdm"
2016-07-12T08:44:31.065+02:00 WARN (1188-0C10) <Thread-1> [KeyVaultKeyStore] (NetHandler) Certificate chain not found for alias: vdm
2016-07-12T08:44:31.081+02:00 INFO (1188-0C10) <Thread-1> [v] The Secure Gateway Server is listening on https://*, port:443
....
2016-07-12T08:46:22.939+02:00 ERROR (1188-1AE4) <pool-1-thread-1> [KeyVaultKeyStore] (NetHandler) No qualifying certificates in keystore
2016-07-12T08:46:22.940+02:00 ERROR (1188-1AE4) <pool-1-thread-1> [KeyVaultKeyStore] (NetHandler) No qualifying certificates in keystore
2016-07-12T08:46:22.941+02:00 ERROR (1188-1AE4) <pool-1-thread-1> [KeyVaultKeyStore] (NetHandler) No qualifying certificates in keystore
2016-07-12T08:46:22.942+02:00 ERROR (1188-1AE4) <pool-1-thread-1> [KeyVaultKeyStore] (NetHandler) No qualifying certificates in keystore
2016-07-12T08:46:22.963+02:00 ERROR (1188-0938) <pool-1-thread-2> [KeyVaultKeyStore] (NetHandler) No qualifying certificates in keystore

Also habe ich nochmal von Hand eine Zertifikatsanforderung mit OpenSSL erstellt:

openssl req -new -sha256 -nodes -newkey rsa:4096 -subj '/C=DE/ST=Hessen/L=Location/O=Company/OU=TEST/CN=server.fqdn.info/emailAddress=support@domain.de/subjectAltName=altFQDN,DNS.1=view.domain.info' > ssl.csr
Generating a 4096 bit RSA private key
....................................................................................................................................................++
..........................................................................................++
writing new private key to 'privkey.pem'
-----

Anschließend über die Windows Zertifizierungsstelle signiert (https://certsrv.domain.info/certsrv/). Als Base64 Zertifikat wieder herunterladen und ein PFX generieren:

openssl pkcs12 -export -in certnew.cer -inkey privkey.pem -out cert.pfx
Enter Export Password:
Verifying - Enter Export Password:

Anschließend das Zertifikat über die MMC (Certificates) in den Personal Zertifikatsspeicher importieren.
Vmware View erstellt automatisch ein selbst signiertes Zertifikat, welches den Friendly Name „vdm“ trägt. Dieser muss umbenannt werden, z.b. „vdm-original“.
Bei dem eigenen Zertifikat muss dann der Friendly Name „vdm“ über (Rechtsklick – Properties) gesetzt werden.
friendlycertname
Anschließend den „Vmware View Connection Server“ Dienst neustarten.
img_001

Ubuntu – selbstsigniertes Zertifikat in Zertifikatsspeicher hinzufügen

Manche Webseiten benutzen in Zeiten von StartSSL noch selbstsignierte Zertifikate. Jetzt kann es sein, dass Anwendungen nicht korrekt laufen, sofern der HTTPS-Verbindung nicht vertraut wird.
Ich beschreibe hier kurz wie man dem Zertifikat dennoch vertrauen kann, indem man es in den Zertifikatsspeicher von Ubuntu hinzufügt.

cd /tmp
openssl s_client -showcerts -connect dieUrlmitSelbstSigniertemZertifikat.de:443 /dev/null|openssl x509 -outform PEM >th.crt
cp th.crt /usr/local/share/ca-certificates/th.crt
root@ns346469:/tmp# update-ca-certificates
Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done.

Einrichten von Smart Card Authentifizierung mit Gemalto.Net Smartcards

CA-Server vorbereiten
Man benötigt einen Service Account der für das Ausrollen der Zertifikate verantwortlich ist.
Dieser User muss dann berechtigt werden, Zertifikate über die Templates „Smartcard Logon/User“ auszurollen.
Dazu über die „Certificate Templates Console“ die Templates auswählen und über Sicherheit den zuvor angelegten Service Account die „Read“ und „Enroll“ Rechte geben.

Anschließend die Templates „Smartcard Logon“ sowie „Smartcard User“ in er CA bereitstellen. (sofern nicht schon geschehen)

…weiterlesen

Weiterlesen

Vmware Update Manager (Fehler nach SSL-Update)

Nachdem ich heute mal wieder ein paar SSL-Zertifikate aktualisiert hatte, wollte der Update Manager nicht mehr so recht.
Er spuckte folgende Fehlermeldung aus:

update manager vim.fault.invalidlogin

Im Log (C:\ProgramData\VMware\VMware Update Manager\Logs) machte das sich so deutlich:

[05036 warning 'Libs'] SSLVerifyIsEnabled: failed to read registry value. Falling back to default behavior: verification off. LastError = -2146885628

Mh komisch, google hat auch nicht wirklich geholfen – die Registry Einträge die angeblich unter:
HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.\VMware Infrastructure\Update Manager liegen sollen existieren nicht….. (Scheint, dass ab Version 5 diese nicht mehr existieren? Verbessert mich ggf.)
Also kurzerhand den Update Manager neu installiert, und dabei bin ich auch direkt auf den Fehler des Problems gestoßen.
Das Zertifikat war logischerweise auf den FQDN ausgestellt. Beim Setup des UPDMGR kann man auswählen wie sich dieser identifizieren soll: a) Durch die IP oder b) durch den FQDN….
Hier hatte ich bei der Installation die IP angegeben, weshalb das Zertifikat logischerweise nicht gültig war.

Howto: Windows Zertifizierungsstelle in Ubuntu als Trusted-CA einbinden

Hier ganz kurz und einfach beschrieben, wie man sein Root-Zertifikat einer Windows-Certification Authority unter Ubuntu einbinden kann.
Ich bin selbst schon mal drüber gestolpert, da ich anstatt „crt“ wie später beschrieben „cer“ versucht habe… Ärgerlich, also gut lesen 😉
1. Root-Zertifikat einbinden

Root Zertifkat vom CA-Server holen/exportieren. (Am besten DER)

2. Root-Zertifikat konvertieren in .pem Format

admin@Server:/tmp/1$ openssl x509 -in /tmp/1/root-zertifikat.cer -inform DER -out /tmp/1/root-zertifikat.pem

3. Root-Zertifikat in Zertifikat ordner ablegen (Wichtig – Muss Dateiendung .crt haben)

admin@Server:/usr/share/ca-certificates$ sudo mv zertifikat.pem zertifikat-pem.crt

4. Root Zertifikat importieren

admin@Server:/usr/share/ca-certificates$ sudo dpkg-reconfigure ca-certificates

Hier auf Ja gehen, und in der Liste das entsprechende Zertifikat noch markieren. Anschließend – OK.

Updating certificates in /etc/ssl/certs... WARNING: Skipping duplicate certificate ca-certificates.crt
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done.

Fertig

Howto – Zertifikat unter Ubuntu erstellen und mit Windows CA zertifizieren

Servus zusammen,
hier mal ein kleines Tutorial, wie man unter Ubuntu ein Zertifikat erstellt und dieses mit einem Windows-CA Server zertifiziert.
Anschließend noch kurz angeschnitten, wie man das Zertifikat in den Apache2 als SSL-Zertifikat einbinden kann.
1. Keyfile generieren
Hierbei wichtig, worüber ich zuerst gestolpert bin. Erstellt man ein Keyfile mit Passwort, so muss dieses jedes mal beim Neustart des Apache2 Server eingegeben werden. Deshalb empfehle ich die 2. Variante.

openssl genrsa -des3 -out webserver.key //  openssl genrsa -out webserver.key 2048
Generating RSA private key, 2048 bit long modulus
...............................................................................................+++......+++
unable to write 'random state' e is 65537 (0x10001)

2. Request erstellen
Nun können wir den eigentlichen Request erstellen:

openssl req -new -key webserver.key -out webserver-request.csr

Anschließend müssen die std. Werte für das Zertifikat eingegeben werden.
Common Name = Ausgestellt für, also in unserem Fall servername.domaine.de
3. Request anzeigen lassen
Damit wir uns den Request nicht umständlich per SCP o.ä saugen müssen, schauen wir ihn uns einfach an:

openssl req -in svdrm115.csr
-----BEGIN CERTIFICATE REQUEST-----
.................................
-----END CERTIFICATE REQUEST-----

4. Zertifikat Erstellen
Nun können wir unser Zertifikat beim CA-Server beantragen. Dazu auf den CA-Server gehen http://caserver/certsrv

Submit a certificate request by using a base-64-encoded CMC or PKCS #10 file, or submit a renewal request by using a base-64-encoded PKCS #7 file. 

Per Hand kopieren wir nun den obigen Inhalt des Zertifikats in , Template = Webserver (in unserem Fall)
5. Zertifikat in PEM Format umwandeln
Damit der Apache was mit unserem Zertifikat anfangen kann müssen wir es zuerst in ein .pem File konvertierten:

openssl x509 -in /tmp/1/zertifikat-der.cer -inform DER -out /tmp/1/zertifikat.pem -outform PEM

6. Testen ob Zertifikat korrekt ist:

openssl verify zertifikat.cer/pem

Hier sollte ein „OK“ zurückkommen.
7. Zertifikat im Apache2 einbinden
Dazu in der /etc/apache2/sites-available/default-ssl eintragen:

SSLCertificateKeyFile /etc/apache2/ssl/zertifikat.key
SSLCertificateFile /etc/apache2/ssl/zertifikat.pem

8. Apache neustarten

sudo service apache2 restart

Das wars auch schon. Gruß
Constey