Das Notes Forum

Best Practices => Diskussionen zu Best Practices => Thema gestartet von: Flachmann am 08.08.17 - 17:07:43



Titel: Let's Encrypt für Domino unter Windows
Beitrag von: Flachmann am 08.08.17 - 17:07:43
Nach langatmigem Lernpfad möchte ich Euch eine Anleitung für Let's Encrypt für Domino unter Windows nicht vorenthalten. Let's Encrypt https://letsencrypt.org/ (https://letsencrypt.org/) erstellt kostenlose TLS/SSL-Zertifikate, die auch für Domino nutzbar sind. Einziger Nachteil ist, dass diese Zertifikate nur für drei Monate ausgestellt werden, d.h. es empfiehlt sich alle zwei Monate eine Erneuerung durch zu führen um genügend Zeit zur Implementierung zu haben.

Es sind einige Anleitungen in INet zu finden, aber die, die ich bislang fand, beziehen sich auf Unix-Umgebungen. Vielen Dank an Tode für die Unterstützung beim Domino-Teil.

Wichtige Links:
  • Download letsencrypt-win-simple für Windows: https://github.com/Lone-Coder/letsencrypt-win-simple/releases Das Paket dann irgendwohin "installieren" (d.h. den Inhalt kopieren).
  • Doku letsencrypt-win-simple-Wiki: https://github.com/Lone-Coder/letsencrypt-win-simple/wiki/Command-Line-Arguments
  • Download IBM Keyring-Tool von IBM 'Fix Central': https://www.ibm.com/support/fixcentral/swg/quickorder?parent=ibm%7ELotus&product=ibm/Lotus/Lotus+Domino&release=9.0.1.2&platform=All&function=fixId&fixids=KYRTool_9x_ClientServer&includeSupersedes=0&source=fc Aus dem Paket wird für Windows nur die w64- bzw. w32-Version benötigt. Die EXE irgendwohin "installieren" (d.h. den Inhalt kopieren).
  • Doku IBM Keyring-Tool: https://www-10.lotus.com/ldd/dominowiki.nsf/dx/kyrtool
  • Download LetsEncryt Root-Zertifikate: https://letsencrypt.org/certificates/ Gebraucht werden "ISRG Root X1 (self-signed)" und die aktiven "Let’s Encrypt Authority X3 (Signed by ISRG Root X1)" und "Let’s Encrypt Authority X3 (IdenTrust cross-signed)". Ich habe die Dateien in .pem umbenannt und in den Ordner F:\Cert abgelegt!
    Die IdenTrust-Version und Schritt 3c unten werden nur solange benötigt, solange das Let's Encrypt-Root-Zertifikat noch nicht von allen Browsern aktzeptiert wird.


Interessante, weiterführende Links:
  • https://atnotes.de/index.php/topic,61007.0.html
  • https://www-01.ibm.com/support/docview.wss?uid=swg21268695
  • https://xomino.com/2016/02/09/using-lets-encrypt-to-create-an-ssl-certificate-for-my-bluemix-hosted-web-site/
  • https://xomino.com/2016/02/18/adding-your-lets-encrypt-ssl-certificate-into-your-domino-keyring-file/


1. Aufruf von letsencrypt-win-simple
letsencrypt-win-simple funktioniert interaktiv, d.h. Programm aufrufen und die abgefragten Informationen eingeben. Das empfiehlt sich definitiv fürs erste Mal!

Für die weitere Verwendung empfiehlt sich im Batch-Betrieb dieser Aufruf:
Code:
letsencrypt.exe --emailaddress email@me.com --san --manualhost host.de,www.host.de --webroot "F:\Domino\Data\domino\html"
    --warmup --plugin Manual --usedefaulttaskuser --accepttos --notaskscheduler --closeonfinish

E·Mail und Host müssen natürlich angepasst werden. Durch --webroot "F:\Domino\Data\domino\html" werden die LetsEnrypt-Prüfdateien direkt im Domino\Data-Verzeichnis erstellt.

Mit --san --manualhost host.de,www.host.de werden Zertifikate für diese beiden Adressen erzeugt. Wenn man nur eine Adresse benötigt, genügt --manualhost www.host.de (ohne --san).

Die Domino HTTP-Task muss während des Aufrufs laufen, sonst kann Let's Enrypt die interne Prüfung nicht vornehmen!

Anschließend befinden sich die erstellten Zertifikate in "C:\Users\Administrator\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org". Dieser Pfad kann bei Bedarf über einen weiteren Parameter geändert werden. Die benötigten Zertifikatsdateien dann nach "F:\Cert" kopieren (oder wohin auch immer).

Code:
COPY "C:\Users\Administrator\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org\*.pem" "F:\Cert" /Y /V


2. Erstellen einer gemeinsamen Zertifikatsdatei:
Code:
TYPE "F:\Cert\host.de-key.pem" "F:\Cert\host.de-crt.pem" "F:\Cert\letsencryptauthorityx3.pem" "F:\Cert\isrgrootx1.pem" >
    "F:\Cert\combined.txt"


3a. Prüfung der Zertifikate (optional)
Dieser Schritt ist nur im Vordergrund sinnvoll und kann im Batch-Betrieb ignoriert werden.
Code:
kyrtool.exe ="C:\Program Files\IBM\Domino\notes.ini" verify "F:\Cert\combined.txt"


3b. Import Zertifikate in Domino-Keyring:
Code:
kyrtool.exe ="C:\Program Files\IBM\Domino\notes.ini" import all -k "F:\Domino\Data\keyfile.kyr" -i "F:\Cert\combined.txt"


3c. Import Cross-Root in Domino-Keyring:
Code:
kyrtool.exe ="C:\Program Files\IBM\Domino\notes.ini" import certs -k "F:\Domino\Data\keyfile.kyr"
    -i "F:\Cert\lets-encrypt-x3-cross-signed.pem"


4. Domino HTTP-Task neu starten
Wenn der Domino-Server im Rahmen von regelmäßigen Wartungsarbeiten sowieso neu gestartet wird, braucht nichts weiter gemacht zu werden. Nach dem Neustart ist das Zertifikat aktiv. Alternativ kann die HTTP-Task natürlich auch gezielt gestartet werden um die aktualisierte Keyring-Datei zu lesen.


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: Tode am 09.08.17 - 12:23:30
sehr schön! Ich hätte allerdings für den "komplett- Einsteiger" die Befehle für die Generierung der kyr- Datei auch noch als "einmal"- Schritt mit angegeben, um das zu vervollständigen:

kyrtool.exe ="C:\Program Files\IBM\Domino\notes.ini" create -k "F:\Domino\Data\keyfile.kyr" -p EinGanzSicheresPasswort


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: Flachmann am 09.08.17 - 12:40:44
Ja, danke, das fehlte. Die Keyring-Datei muss einmalig erstellt werden.


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: eknori am 23.08.17 - 17:14:58
https://www.eknori.de/2017-08-23/free-midpoints-lets-encrypt-4-domino-le4d/


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: ronka am 23.08.17 - 19:45:44
Ich bekomme einen page not found bei den link :-(

weil es nicht 21 sondern 23 ist :-)

https://www.eknori.de/2017-08-23/free-midpoints-lets-encrypt-4-domino-le4d/


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: netzgoetter am 23.08.17 - 21:06:15
Rudi, nimm besser meinen Post:

http://www.netzgoetter.net/internet/blogs/netzgoetter.nsf/dx/announcing-lets-encrypt-for-domino-just-do-ssl.htm

Da funktionier auch der Link

duck und weg bevor der eknori mir hierauf antwortet


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: eknori am 23.08.17 - 21:10:57
Wo ist da ein Fehler?  ;D


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: ronka am 23.08.17 - 21:20:43
Wo ist da ein Fehler?  ;D

Vom Zaubere(ditiere)r weggemachen  :-:


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: Cookie am 26.10.18 - 14:56:08
(...)

und bei partitionierten Servern bitte darauf achten, dass im Programmverzeichnis auch eine notes.ini liegt.  8)


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: Ottmar am 14.02.19 - 17:56:27
Hallo Liebes Forum,

ich habe mir gestern "letsEncrypt-win-simple" frisch von letsencrypt.org gedaownloaded und wollte alles so wie unten beschrieben nachstellen.

Meine Version von letsencrypt.exe kennt aber die Parameter
--notaskscheduler --closeonfinish
nicht. Ich habe andere Versionen gesucht, bislang ohne Erfolg.

Weiter werden beim Aufruf des Programms (ohne die beiden Parameter) zwar Dateien "Registration" und "Signer" im Benutzerprofil des Admin gespeichert, Zertifikatsdateien ("*,pem") der Ähnliches fiinde ich dort aber nicht.

Was mache ich falsch? Hat vielleicht jemand eine Link zu einem Letsencrypt-Programm, dass die Parameter --notaskscheduler und --closeonfinish kennt? Kann mir einer auf die Sprünge helfen?



Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: Tode am 15.02.19 - 08:33:37
Nimm letsencrypt4domino von midpoints. Das ist wesentlich einfacher zu implementieren.


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: Ottmar am 15.02.19 - 11:53:06
Ich danke für den Tipp. Die Datenbank vereinfacht die Konfiguration tatsächlich erheblich, die Anleitung dazu ist sehr gut und ausführlich.

Leider hilft mir das aber nichts. der darin vorhandene Agent für die Umsetzung liefert eine Fehlermeldung:

Agent Manager: Agent  error: org.shredzone.acme4j.exception.AcmeServerException: Order's status ("invalid") is not acceptable for finalization

Da ich den Code nicht debuggen kann - der Code ist verständlicherweise verborgen - habe ich keine Idee, welcher Order-Status warum invalid ist wie ich auf diesen Weg weiterkomme.




Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: eknori am 15.02.19 - 13:02:09
Die Fehlermeldung kommt üblicherweise, wenn dein Domino Server auf der externen Adresse nicht auf Port 80 erreichbar ist.

Ich gehe mal davon aus, daß du lediglich port 443 aktiv hast. Die Lets Encrypt CA möchte aber bei der ersten Anforderung eines zertifikat unbedingt auf port 80 die Challenge holen.

Bei einer Verlängerung eines bestehenden Zertifikats braucht es port 80 nicht mehr.

Daher gibt es nur den Workaround, einmalig port 80 über die externe Adresse erreichbar zu machen, das Zertifikat zu holen, und dann wieder dicht zu machen.

Ist auch bei allen anderen Tools so ( certbot etc )

 


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: Ottmar am 15.02.19 - 13:55:54
Der HTTP-Task meldet aber, dass er auf Port 80 hört.
Rufe ich allerdings von Extern die Webadresse des Dominoservers auf, kommt ein Fehler "504 * Anfrage von Server hat zu lange gedauert".

Ich stehe gerade auf dem Schlauch. Im Notes sieht alles ok aus, wird wohl an Windows liegen ?! (Ich fürchte gerade, ich wandere gerade weit weg von Notes... muss mir mal ein Windows Forum suchen.)


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: eknori am 15.02.19 - 13:58:28
Windows firewall blockt port 80?
Wie ist denn der Weg extern nach intern ? Fritz.box? ist dann da auch ein portmapping eingetragen?


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: Ottmar am 15.02.19 - 14:51:07
Hmmm,

Port 80 ist frei.
Der Router (Lancom 1631e) leitet Anfragen an Port 80/443 direkt zu unserem virtuellen Dominoserver weiter.

Den Traveler-Task habe ich gerade mal deaktiviert, den HTTP Task neu gestartet.
Der liefert jetzt beim Hochfahren mehrseitige Fehlermeldungen

[0494:000B-1E9C] 15.02.2019 14:42:12   HTTP JVM: java.lang.NoClassDefFoundError: org.eclipse.osgi.framework.internal.core.BundleURLConnection
[0494:000B-1E9C] 15.02.2019 14:42:12   HTTP JVM:  at com.lotus.sync.util.Version.<clinit>(Version.java:139)
[0494:000B-1E9C] 15.02.2019 14:42:12   HTTP JVM:  at com.lotus.sync.servlet.TravelerServlet.init(TravelerServlet.java:607)
[0494:000B-1E9C] 15.02.2019 14:42:12   HTTP JVM:  at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.initializeDelegate(ServletManager.java:195)
[0494:000B-1E9C] 15.02.2019 14:42:12   HTTP JVM:  at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.init(ServletManager.java:171)

Hmmm, beim letzten Start vor der Agentenausführung hatte er das noch nicht. Da ist wohl kräftig was kaputt gegangen.
Ich werde mich erst einmal um dieses Problem kümmern müssen.


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: eknori am 15.02.19 - 14:54:00
Das hat aber mit der Ausführung von LE4D nichts zu tun.  LE4D macht keine Änderungen an der Systemkonfiguration im names.nsf oder der notes.ini. Und ich sollte es wissen, ich habe LE4D geschrieben.


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: Ottmar am 15.02.19 - 15:03:11
Um Gottes Willen, ich will nichts unterstellen.

Ich habe gestern in Vorbereitung von Fixpack7 auf Fixpack10 upgedatet. Möglicherweise ist da das Problem.
Habe im Moment noch keine Idee, wie ich das repariert kriege. Vermutlich werde ich heute Nacht den Server erst einmal komplett neuaufsetzen müssen.

Sch.....  ???


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: eknori am 15.02.19 - 15:07:16
Stop, keinen blinden Aktionismus.

Du hast Traveler deaktiviert. Aus der notes.ini rausgenommen , oder wie?

wenn du willst, dann schicke mir deine notes.ini und in einer leeren Datenbank das Serverdokument, evtl. Konfigurationsdokument und die zum Server gehörenden WebDokumente. Dann schaue ich da mal drüber.

Welche traveler version ist im Einsatz?

an eknori at eknori dot de



Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: Tode am 18.02.19 - 08:21:36
Der HTTP- Task kommuniziert doch mit dem Traveler... Wenn Du den deaktivierst, dann sind seitenweise Fehlermeldungen normal, weil die geladenen Servlets keine Antwort vom Traveler- Dienst bekommen...

Mit NEU aufsetzen wirst Du vermutlich keinerlei Probleme beheben. Das ist nicht Windows: Der Fehler liegt in 90% der Fälle in der Config, und die ist auch nach dem neu Aufsetzen die gleiche...


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: Ottmar am 21.02.19 - 18:02:50
Wenn man die Lösung hat, ist es soooo einfach.

Port 443 war von einer anderen Anwendung belegt, dann kann das Ganze natürlich nicht funktionieren. Es ist mir fast peinlich, zu sagen, dass ich für das Aufspüren dieses trivialen Fehlers Hilfe brauchte, aber man denkt manchmal viel zu kompliziert.  :-[

Einen öffentlichen Dank an eknori und netzgoetter muss ich unbedingt loswerden, die mir ein wenig auf die Sprünge geholfen haben.  ;)

Das Tool an sich ist Klasse. Meine Empfehlung! ;D


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: RRO am 06.04.19 - 09:03:38
Hallo, ich habe mir Let’s Encrypt 4 Domino von midpoints installiert und mich ans Handbuch gehalten. Wenn ich den Agent ausführe, bekomme ich folgenden Fehler. Was könnte ich falsch gemacht haben?
> tell amgr run "admin/LetsEncrypt.nsf" 'letsencrypt'
06.04.2019 08:49:08   AMgr: Start executing agent 'letsencrypt' in 'admin\LetsEncrypt.nsf'
06.04.2019 08:49:10   Agent Manager: Agent printing: Requesting certificates.
06.04.2019 08:49:10   Agent Manager: Agent printing: Session URL: acme://letsencrypt.org
06.04.2019 08:49:10   Agent Manager: Agent  error: org.shredzone.acme4j.exception.AcmeNetworkException: Network error
06.04.2019 08:49:10   Agent Manager: Agent  error:    at org.shredzone.acme4j.connector.DefaultConnection.sendRequest(DefaultConnection.java:148)
06.04.2019 08:49:10   Agent Manager: Agent  error:    at org.shredzone.acme4j.provider.AbstractAcmeProvider.directory(AbstractAcmeProvider.java:57)
06.04.2019 08:49:10   Agent Manager: Agent  error:    at org.shredzone.acme4j.Session.readDirectory(Session.java:190)


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: schroederk am 08.04.19 - 07:51:17
Also für mich sieht es so aus, als wenn die Verbindung nicht zustande kommt.
Das könnte zum Beispiel an fehlenden Berechtigungen in der Firewall liegen.


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: RRO am 08.04.19 - 08:48:22
Danke für die Antwort, aber ich habe zum Test sogar die Firewall ausgeschaltet. Soweit ich das verstanden habe, reicht Port 80 und 443 aus.


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: netzgoetter am 08.04.19 - 09:30:33
Die ausgehende Verbindung Domino --> Let's Encrypt funktioniert hier nicht.

Hier fehlt eine Firewall-Freigabe.

Hinweis eine Verbindung über einen Forward Proxy unterstützen wir aktuell nicht.


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: RRO am 08.04.19 - 11:20:57
Hier fehlt eine Firewall-Freigabe

Welche Freigabe wäre das, welcher Port? Forward Proxy nutze ich nicht, Dominoserver hängt direkt im Internet.


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: eknori am 08.04.19 - 11:44:26
Welche Version von LE4D ist installiert? Sieht mir irgendwie nach V1 aus.


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: netzgoetter am 08.04.19 - 14:49:20
Hier fehlt eine Firewall-Freigabe

Welche Freigabe wäre das, welcher Port? Forward Proxy nutze ich nicht, Dominoserver hängt direkt im Internet.

Ausgehend Port 443 auf letsencrypt.org
Wobei Let's Encrypt keine feste IP oder IP-Range kommuniziert hat, unter der die Let's Encrypt API angesprochen werden kann. Somit müßte ausgehend Port 443 in die Welt erlaubt sein.


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: RRO am 08.04.19 - 15:02:53
Welche Version von LE4D ist installiert? Sieht mir irgendwie nach V1 aus.
Hallo, die Version ist LetsEncrypt.4.Domino_v2_0_0_20180328.ntf


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: RRO am 08.04.19 - 15:05:43
Hier fehlt eine Firewall-Freigabe

Welche Freigabe wäre das, welcher Port? Forward Proxy nutze ich nicht, Dominoserver hängt direkt im Internet.

Ausgehend Port 443 auf letsencrypt.org
Wobei Let's Encrypt keine feste IP oder IP-Range kommuniziert hat, unter der die Let's Encrypt API angesprochen werden kann. Somit müßte ausgehend Port 443 in die Welt erlaubt sein.
Ich habe keine Beschränkungen nach außen und die Webseite kann ich mit dem Browser öffnen.


Titel: Re: Let's Encrypt für Domino unter Windows
Beitrag von: netzgoetter am 08.04.19 - 15:25:13
schick bitte eine Mail an die im LE4D PDF angegebene Supportadresse.

Bitte einmal einen Screenshot des LE4D Konfigurationsdokumentes, Domino Server Version, Betriebssystem mitschicken

Ich schaue mir das dann an und melde mich dann zeitnah.