openHAB 5.0.0 auf Windows - SSL Zertifikat hinterlegen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
K.H.
Beiträge: 4
Registriert: 1. Aug 2025 08:47
Answers: 0

openHAB 5.0.0 auf Windows - SSL Zertifikat hinterlegen

Beitrag von K.H. »

Hallo zusammen,

mein Name ist Kai und ich bin absoluter Neuling, wenn es um das Thema openHAB und Zertifikate geht :-)

Ausgangslage:

Ich habe unter Windows eine Neuinstallation von openHAB 5.0.0 durchgeführt.

Als jdk nutze ich OpenJDK21U-jdk_x64_windows_hotspot_21.0.8_9 von https://adoptium.net/de/temurin/release ... ackage=jre

Ich bin der offiziellen Anleitung gefolgt, um openHAB als Systemdienst zu starten.

Das initiale Setup ist erfolgreich durchgelaufen.

Über die Ports 8080 bzw 8443 funktioniert der Aufruf im Browser.


Nun zu meinem Problem:

Im ersten Schritt möchte ich nun ein sicheres SSL Zertifikat hinterlegen um das selfsigned loszuwerden.

Daher nun meine Frage wie mache ich das?

Bisher habe ich mir folgende Infos zusammen gesucht, korrigiert mich bitte wenn ich falsch liege:

Es wird initial die Keystore Datei unter ..\openhab\userdata\etc verwendet.

Dort ist das selfsigned Zertifikat hinterlegt.

Im Ideallfall würde ich gerne auf den Windows Zertifikatespeicher umstellen, eine entsprechende .pfx Datei mit dem neuen Zertifikat habe ich.

Ich hoffe ihr könnt mir weiterhelfen :-)

Grüße
Kai

Benutzeravatar
udo1toni
Beiträge: 15337
Registriert: 11. Apr 2018 18:05
Answers: 247
Wohnort: Darmstadt

Re: openHAB 5.0.0 auf Windows - SSL Zertifikat hinterlegen

Beitrag von udo1toni »

Eine Anleitung explizit für Windows kann ich leider nicht bieten. Hier aber eine Anleitung, wie man unter Linux per let's encrypt openHAB ein gültiges Zertifikat verpasst:

https://community.openhab.org/t/securin ... cates/7918

Die dort beschriebenen Schritte kannst Du vermutlich selbst am besten nachvollziehen und entsprechend auf Windows und Deine Umgebung umsetzen (Du musst halt die passenden Tools finden, um aus der .pks12 Datei den keystore zu erzeugen).
Wichtig ist auch, den neuen keystore in jetty einzuklinken...
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.6, LXC)

K.H.
Beiträge: 4
Registriert: 1. Aug 2025 08:47
Answers: 0

Re: openHAB 5.0.0 auf Windows - SSL Zertifikat hinterlegen

Beitrag von K.H. »

Danke für die richtige Richtung :-)

Nach viel Testen und mehreren Anläufen habe ich es hinbekommen!

Hier mein Ablauf, für alle die openHAb 5.0.0 stable unter Windows mit dem derzeit aktuellen openJDK betreiben, und ein eigenes SSL Zertifikat verwenden wollen.

Da es nicht auf Anhieb funktioniert hatte, musste ich auf gefährliches Halbwissen von Chatgpt zurückgreifen, trotzdem hier alle Schritte die mir zum Erfolg geholfen haben.

Der Vollständigkeit halber an dieser Stelle noch ein Hinweis, bevor ihr weiterlest:

Falls ihr euch damit Konfigurationen etc. Zerstören solltet und Daten verliert, seid ihr selber Schuld.
Ich übernehme keinerlei Haftung / Verantwortung für euer Handeln ;-)



Voraussetzung:
- Euch liegt ein entsprechendes SSL Zertifkat als .pfx (also mit private Key) vor und ihr kennt das Passwort ;-)
- Openhab Installationsanleitung für Windows wurde befolgt, es läuft als Dienst



1. Dienst stoppen
2. Als erstes den neuen Keystore erzeugen, dazu habe ich powershell genutzt:

Code: Alles auswählen

# Den "Alias" aus dem exportierten pfx Store ermitteln
# Alles vor dem ersten Komma
#
# Wird im nächsten Schritt benötigt

keytool -list -keystore C:\temp\XXX.pfx -storepass ??? #--> Hier muss das PW verwendet werden, welches beim Export / erstellen eingetragen 

# Keystore aus pfx Datei erzeugen
# deststorepass --> vergeben und merken!
# destkeypass   --> vergeben und merken!
# destkeypass   --> Hier muss das PW verwendet werden, welches beim Export / erstellen eingetragen 
# srcalias      --> siehe oben

keytool -importkeystore -deststorepass XXX -destkeypass XXX -destkeystore c:\temp\keystore -destalias mykey -srckeystore C:\temp\????.pfx -srcstoretype PKCS12 -srcstorepass  XXX -srcalias YYY

# kontrolle
# storepass --> siehe oben
keytool -list -keystore C:\temp\keystore -storepass XXX

# Jetty util pfad finden:
# Pfad kopieren, wird im nächsten Schritt benötigt, ggf Laufwerk und Pfad anpassen
Get-ChildItem -Recurse -Filter "jetty-util*.jar" X:\openhab

# PW verschlüsselt setzen
# Das PW wird hinten unverschlüsselt angegeben
# Aktuelle PW siehe oben
java -cp "X:\openhab\runtime\system\org\eclipse\jetty\jetty-util\9.4.57.v20241219\jetty-util-9.4.57.v20241219.jar" org.eclipse.jetty.util.security.Password MEIN_SICHERES_PW_IM_KLARTEXT

Es sollte dann eine ausgabe Erscheinen, wo ihr etwas mit "OBF:" seht, gut merken und sichern!
Wird im nächsten Schritt benötigt !!!



3. Dann X:\openhab\runtime\etc\jetty.xml editieren:

Code: Alles auswählen

	<New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory$Server">
		<Set name="KeyStorePath"><Property name="jetty.home" default="." />/etc/keystore</Set>
		<Set name="KeyStoreType">JKS</Set>
		<Set name="KeyStorePassword">OBF:xxx</Set>
		<Set name="KeyManagerPassword">OBF:xxx</Set>

		<Set name="TrustStorePath"><Property name="jetty.home" default="." />/etc/keystore</Set>
		<Set name="TrustStoreType">JKS</Set>
		<Set name="TrustStorePassword">OBF:xxx</Set>

    <!-- Falls du einen bestimmten Alias im Keystore ansprechen willst -->
		<Set name="certAlias">mykey</Set>

    <!-- Optional: Deaktiviere Hostnamenprüfung, wenn nötig -->
		<Set name="EndpointIdentificationAlgorithm"></Set>

    <!-- Optional: Client-Zertifikate -->
		<Set name="NeedClientAuth"><SystemProperty name="jetty.ssl.needClientAuth" default="false" /></Set>
		<Set name="WantClientAuth"><SystemProperty name="jetty.ssl.wantClientAuth" default="false" /></Set>
	</New>
4. Dann die Datei X:\openhab\userdata\etc\jetty.xml bearbeiten:

Code: Alles auswählen

	<New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory$Server">
    <Set name="KeyStorePath"><Property name="jetty.home" default="." />/etc/keystore</Set>
    <Set name="KeyStoreType">JKS</Set>
    <Set name="KeyStorePassword">OBF:XXX</Set>
    <Set name="KeyManagerPassword">OBF:XXX</Set>
    </New>

<Call name="addConnector">
  <Arg>
    <New class="org.eclipse.jetty.server.ServerConnector">
      <Arg><Ref refid="Server"/></Arg>
      <Arg>
        <Array type="org.eclipse.jetty.server.ConnectionFactory">
          <Item>
            <New class="org.eclipse.jetty.server.SslConnectionFactory">
              <Arg><Ref refid="sslContextFactory"/></Arg>
              <Arg>http/1.1</Arg>
            </New>
          </Item>
          <Item>
            <New class="org.eclipse.jetty.server.HttpConnectionFactory"/>
          </Item>
        </Array>
      </Arg>
      <Set name="port"><Property name="jetty.ssl.port" default="8443"/></Set>
      <Set name="idleTimeout">30000</Set>
      <Set name="name">sslConnector</Set>
    </New>
  </Arg>
</Call>
5. Danach den unter C:\temp erzeugten Keystore “Keystore” nach X:\openhab\userdata\etc\ kopieren
6. Dienst wieder starten

Vielleicht hilft es einigen hier ja weiter ;-)

Grüße
Kai

Benutzeravatar
udo1toni
Beiträge: 15337
Registriert: 11. Apr 2018 18:05
Answers: 247
Wohnort: Darmstadt

Re: openHAB 5.0.0 auf Windows - SSL Zertifikat hinterlegen

Beitrag von udo1toni »

Prima, wieder wertvolle Informationen dokumentiert, Danke dafür!
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.6, LXC)

Antworten