Exchange Certificate Assistant: Neue Version

Ich habe angefangen den “Exchange Certificate Assistant” zu überarbeiten. Die bisherige Version ist nicht mehr kompatibel zum aktuellen ACMESharp Modul und erfordert daher eine alte Version des Moduls. Da sich aber mittlerweile einige relevante Teile des ACMESharp Moduls geändert haben, ist es Zeit für eine neue Version des “Exchange Certificate Assistant”.

Ich habe den “Certificate Assistant” daher grundlegend überarbeitet und dabei auch paar Verbesserungen eingeführt:

  • Es wird ein Logfile erzeugt
  • Das Logfile kann per Mail versendet werden
  • Das Logfile liegt im CSV-Format vor und lässt sich daher weiter verarbeiten und leichter analysieren
  • Die Fehlerbehandlung ist im Script nun nahezu durchgängig
  • Das Script ist zur aktuellen ACMESharp Modul Version kompatibel (derzeit Version 0.9.1.326)

Es gibt aber auch einige Stellen an denen ich noch schrauben muss:

  • Derzeit ist das Script nur mit Exchange 2016 auf Server 2016 getestet worden
  • Support für Server 2012 R2 und Exchange 2013 muss getestet, bzw. hinzugefügt werden
  • Aufräumen der alten / abgelaufenen Zertifikate
  • Das Anlegen einer geplanten Aufgabe für die Erneuerung ist entfallen

Let’s Encrypt Zertifikate sind bekanntlich 3 Monate lang gültig. In der alten Version des Scripts, wurde ein geplanter Task angelegt, der das Zertifikat erneuert. Dies soll auch weiterhin so sein, jedoch soll der Task bestimmen, wann das Zertifikat erneuert wird. Dazu ist nur noch ein erneuter Aufruf des Scripts nötig.

Ich stelle mir das in etwa so vor:

  • Erster Aufruf des Scripts durch Admininistrator
  • Script installiert nötige Voraussetzungen
  • Script konfiguriert das Zertifikat
  • Administrator legt geplante Aufgabe an, die das Script beispielsweise alle 60 Tage startet
  • Script erneuert Zertifikat automatisch, ohne Benutzerinteraktion

Für die Exchange 2013 und Exchange 2010 erstelle ich eigene Versionen des Scripts, so müssen weniger “Versionsabhängigkeiten” innerhalb eines Script berücksichtigt werden. Ich denke dadurch wird es etwas einfacher.

Es gibt natürlich trotzdem ein paar Voraussetzungen:

  • Exchange 2016 auf Server 2016 (Support für weitere Exchange und OS Versionen folgt)
  • Exchange 2016 muss auf Port 80 (http) und Port 443 (https) aus dem Internet erreichbar sein
  • Exchange 2016 muss mit gültigen FQDNs konfiguriert sein, auf .local und .intern (usw) endende FQDNs werden nicht unterstützt
  • Alle konfigurierten Exchange 2016 FQDNs müssen aus dem Internet erreichbar sein (interne, sowie externe FQDNs)

Nach aktuellen Best Practises sollten interne und externe FQDNs eh gleich sein, daher sollten die Voraussetzungen im Normalfall kein Problem darstellen. Der interne Servername spielt dabei keine Rolle, lediglich die konfigurierten URLs der Exchange Dienste sind für das Script relevant. Die entsprechenden Hostnamen werden durch das Script automatisch ermittelt, können im Bedarfsfall aber auch fest im Script hinterlegt werden.

Ich habe hier einmal ein Video eines ersten Durchlaufs auf einem frisch konfigurierten Exchange 2016 Server erstellt:

Den Download für die alte Version lasse ich zunächst online. Ich würde mich freuen, wenn sich jemand bereit erklärt die aktuelle Version zu testen. Falls es Probleme gibt, dann schickt bitte das Logfile und ggf. Screenshots von der Fehlermeldung per Mail an mich. Bitte zunächst aber nur in Verbindung mit Exchange 2016 testen, andere Exchange Versionen teste ich zunächst in meiner Testumgebung.

Hier nun der Download, der noch ein bisschen Beta Charakter hat:

 

Die übrigen Punkte auf meiner ToDo Liste versuche ich so schnell wie möglich abzuarbeiten. Ich würde mich aber freuen, wenn ich möglichst viele Logfiles aus anderen Umgebungen erhalten würde. Auch Logfiles in denen das Script fehlerfrei durchgelaufen ist, können bei der Verbesserung helfen. Verbesserungsvorschläge und Kritik wie immer auch gerne per Mail über das Kontaktformular.

Update 27.02.18

In meiner Testumgebung wird das Zertifikat auch automatisch erneuert, ich habe dazu eine geplante Aufgabe angelegt. Wie oben beschrieben, erstellt das Script die Aufgabe nicht automatisch. Die folgende Aufgabe hat bei mir problemlos funktioniert:

Aufgabe zur Erneuerung

Der ausführende Benutzer muss lokale Admin Rechte auf dem Server haben, aber natürlich auch entsprechende Exchange Berechtigungen. Ich habe hier zum Testen den Domain Administrator verwendet, welche Rechte genau erforderlich sind, muss ich noch testen. Die Einstellungen, die ich verändert habe sind in den Screenshots zu sehen.

Ich habe für meinen Test einen Trigger auf den heutigen Tag gesetzt, es funktioniert hier aber auch ein entsprechend anderer Trigger. Let’s Encrypt Zertifikate sind 3 Monate lang gültig, man könnte also alle 2 Monate das Zertifikat tauschen und hat dann noch genug Zeit zu reagieren, falls etwas schief geht.

Als Aktion wird dann einfach das Script ausgelöst. Pfad zur Powershell:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Als Argument wird der Pfad zum Script angegeben, in meinem Fall „C:\CertificateAssistant\CertificateAssistant.ps1“

Ich werde nun noch etwas weiter am Script basteln und Testumgebungen für Exchange 2010 und Exchange 2013 installieren.

Update 04.03.2018

Ich habe gerade eine neue Version hochgeladen. Jetzt mit Support für Exchange 2013 und Server 2012 R2. Siehe hier:

Certificate Assistant jetzt auch für Exchange 2013 und Server 2012 R2

 

44 Replies to “Exchange Certificate Assistant: Neue Version”

  1. Hi Frank! Danke für den Post und die Mühe, das Skript zu erneuern!
    Habe mir dein Skript für Lets Encrypt für Exchange schon früher runtergeladen und bei vielen Systemen im Einsatz, SBS2011,W2008R2,2012R2,E2010,2013.Bis auf die automatische Erneuerung funktionierts mit bissi Windows-Fachkenntnis sehr gut und tut was es tun soll.
    Weiter so, top!
    Lg

  2. Hallo,

    würde es – sofern verfügbar – auf einem SBS2011 testen und mich dann melden.

    Grüße
    Alexander

  3. Vielen Dank für die tolle Arbeit!
    Wahnsinn was du hier leistest. Bei uns gehört dein Blog zur Pflichtlektüre!

  4. Hallo Frank

    Ich werde es in einer 2016/2016 Umgebung testen, wo auch das alte Skript gelaufen ist, nur mit dem Task hatte ich Probleme, er hat das Zertifikat einfach nicht erneuert, ich musst das Skript auch in der Schell immer als Admin ausführen bzw. .\ beim Starten voranstellen. Ohne das ist es nicht gelaufen.

    Aber das ist ja alles Schnee von gestern, somit werde ich da neue testen und gerne auch ein Log schicken

  5. Ein Nachtrag
    wenn man das hier einfügt am Anfang des Scripts muss man es nur starten ohne das man erst die Shell als Admin ausführen muss und man kann sich auch das .\ sparen.

    If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] „Administrator“))
    {
    Write-Host „Running elevated…“
    $arguments = „& ‚“ + $myinvocation.mycommand.definition + „‚“
    Start-Process powershell -Verb runAs -ArgumentList $arguments
    Break
    }

    Aber bei der alten v.1.1 konnte ich auch damit nicht den Erneuerungs Task laufen lassen. Bis heute musste ich das Zertifikat immer von Hand ausführen.

  6. Hallo Rico,
    ich hatte doch extra darauf hingewiesen, dass diese Version nur für Exchange 2016 und Windows Server 2016 gedacht ist. Andere Versionen folgen noch.
    Gruß,
    Frank

  7. Hallo Frank,
    Das mit dem nicht laufendem Task hat sich auf die alte Version bezogen. Das neue geht, könnte aber den erstellten Task heute nicht mehr testen weil zu viele Anfragen für die gleiche URL.

    Werde ich morgen testen, sonst geht das neue Script super auf 2016/2016.

    Top Arbeit wie immer!

  8. Dein Blog ist einfach der Hammer !!!
    Danke für deine Zeit und deinen Einsatz.

  9. Hey frank ich habe einen Exchange Server 2013 auf windows server 2012 R2. vor zwei tage habe ich einen neuen server eingerichtet und installiert Exchange server 2016 auf windows server 2016 und beide arbeiten im gleichen Dömain ich versuche Let’s encrypt Zertifikat installieren aber es geht nicht und ich habe diese Nachricht:
    Certificate – Error – Faild to Submit the certificate for signing

  10. Hallo Frank
    Habe auf Windows Server 2016 und Exchange Server 2016 leider den gleichen Fehler wie Nad:
    Certificate – Error – Faild to Submit the certificate for signing
    Im Log steht am Schluss:
    Certificate;Error;Failed to submit the certificate for signing;Der Zugriff auf den Pfad „C:\ProgramData\ACMESharp\sysVault\45-KEYPM\c58e49a2-844d-4be5-a66f-c40739ba580c-key.pem“ wurde verweigert.
    Diese pem-Datei ist in diesem Verzeichnis nicht vorhanden. Es ist leer. Zugriffsberechtigungen sind identisch wie für alle Verzeichnisse in sysVault.

  11. Hallo Frank
    Es war das abgelaufene EFS Wiederherstellungszertifikat.
    Nun läuft alles perfekt durch.
    Vielen Dank und beste Grüsse!

  12. Hallo Frank,
    wenn ich die Zertifikate installieren versuche, kommt diese Nachricht.

    13:56:38;Certificate;Error;Failed to submit the certificate for signing;Unexpected error
    +Response from server:+ Code: Forbidden+ Content: {„type“: „urn:acme:error:unauthorized“, „detail“: „Error creating new cert :: authorizations for these names not found or expired:autodiscover.example.de,example.de“,“status“:403}

    Gruß,
    Nad.

  13. Hi Frank,

    ich habe den gleichen Fehler wie Nad. seid ihr da zu einer Lösung gekommen?
    14.03.2018 15:40:48;Certificate;Error;Failed to submit the certificate for signing;Unexpected error
    +Response from server:+ Code: Forbidden+ Content: { „type“: „urn:acme:error:unauthorized“,
    „detail“: „Error creating new cert :: authorizations for these names not found or expired: autodiscover.domain.de, mail.domain.de“, „status“: 403}

    Gruß
    Marcel

  14. Hallo Marcel, Hallo Jan,
    ich schreibe noch einen Beitrag wie das Vault und weitere Einstellungen zurückgesetzt werden können. Brauche dazu nur noch etwas Zeit.
    Gruß, Frank

  15. Hi Frank, getestet auf 2016 und 2010.
    Auf den 2010er bekam ich auch den Fehler von Marcel.
    Nach einem Neustart und Änderung der Emailadresse hat es funktioniert.

    Auf dem 2016er klappte es aufs erste mal.

    Vielen Dank!!

    Gruß

    Dani

  16. Hallo,

    danke für die Entwicklung dieses genialen Skripts. Leider funktioniert es bei mir auch noch nicht – er schlägt fehl mit der folgenden Fehlermeldung im Skript:

    26.03.2018 13:55:20;Certificate;Info;Try to submit the certificate to Let’s Encrypt;
    26.03.2018 13:55:20;Certificate;Error;Failed to submit the certificate for signing;Der Zugriff auf den Pfad „C:\ProgramData\ACMESharp\sysVault\45-KEYPM\c64a74e7-dbc2-4d1a-9df7-fc8f605927b8-key.pem“ wurde verweigert.

    Hat jemand eine Idee woran das liegen könnte? In besagtem Verzeichnis ist nichts drin. Ich starte das Skript mit einer Powershell, die administrative Rechte hat.

    Viele Grüße

    Matthias

  17. Hallo Patrick,

    vielen Dank für Dein schnelles Feedback. Ich bin inzwischen auch auf den link gestoßen und habe besagte Befehle ausgeführt. Diese haben bei mir leider nicht geholen, ich erhalte immer noch die gleiche Fehlermeldung:
    26.03.2018 15:14:53;System;Info;Geting system parameters;
    26.03.2018 15:14:53;System;Info;Certificate Assistant Exchange 2013 Version;
    26.03.2018 15:14:53;System;Info;PowerShell Version: 4.0 OSVersion: 6.2.9200.0;
    26.03.2018 15:14:53;Check ACMEModule;Info;Check if Module installed;
    26.03.2018 15:14:53;Check ACMEModule IIS;Info;Check if IIS Extension is installed;
    26.03.2018 15:14:53;Load ACMEModule;Info;ACMEModule is installed, try to load it;
    26.03.2018 15:14:53;Load ACMEModule;Info;Module Import was successfull, ACMESharpVersion 0.9.1.326;
    26.03.2018 15:14:53;Load ACMEModule IIS;Info;ACMEModule IIS extension is installed, try to load it;
    26.03.2018 15:14:53;Load ACMEModule IIS;Info;ACMEModule IIS extension already loaded;
    26.03.2018 15:14:54;Verify ACME Handler;Info;Successfully verified ACME IIS Challange Handler;
    26.03.2018 15:14:54;Load Exchange SnapIns;Info;Try to load Exchange SnapIns;
    26.03.2018 15:14:56;Load Exchange SnapIns;Info;Sucessfully loaded Exchange SnapIns;
    26.03.2018 15:14:56;Load IIS Module;Info;Try to import IIS Webserver Modules;
    26.03.2018 15:14:56;Load IIS Module;Info;Import successfully;
    26.03.2018 15:14:56;Custom FQDNs;Info;Using Custom FQDNs is configured;
    26.03.2018 15:14:56;Check Vault;Info;Lets check if exists a vault;
    26.03.2018 15:14:57;Check Vault;Info;Vault found;
    26.03.2018 15:14:57;Check Registration;Info;Lets check if exists a LE registration;
    26.03.2018 15:14:57;Check Registration;Info;Found registration;
    26.03.2018 15:14:57;CustomFQDN;Info;Using exchange.xxxxxxxx.de as Certificates Common Name (CN);
    26.03.2018 15:14:59;ACME Identifier;Info;Successfully added ACME Identifier for Cert Alias Cert260320181514-1 DNSName exchange.xxxxxxxx.de;
    26.03.2018 15:14:59;ACME Identifier;Info;Using Cert260320181514-1 DNSName exchange.xxxxxxx.de as certificates CN;
    26.03.2018 15:15:00;ACME Identifier;Info;Successfully added ACME Identifier for Cert Alias Cert260320181514-2 DNSName intranet.xxxxxxxx.de;
    26.03.2018 15:15:00;ACME Identifier;Info;Updating ACME Identifiers;
    26.03.2018 15:15:01;ACME Identifier;Info;Successfully updated ACME Identifier for Cert Alias Cert260320181514-1;
    26.03.2018 15:15:01;ACME Identifier;Info;Successfully updated ACME Identifier for Cert Alias Cert260320181514-2;
    26.03.2018 15:15:03;ACME Challange;Info;Completed ACME Challenge for Alias Cert260320181514-1;
    26.03.2018 15:15:04;ACME Challange;Info;Completed ACME Challenge for Alias Cert260320181514-2;
    26.03.2018 15:15:04;IIS;Info;Changing Let’s Encrypt IIS directory to http;
    26.03.2018 15:15:05;IIS;Info;Successfully changed Let’s Encrypt IIS directory to http;
    26.03.2018 15:15:05;IIS;Info;Checking Let’s Encrypt IIS directory to accept validation by http request;
    26.03.2018 15:15:05;IIS;Info;.well-known directory accepts http;
    26.03.2018 15:15:05;LE Challange;Info;Try to submit challenge;
    26.03.2018 15:15:07;LE Challange;Info;Submitted challenge for Alias Cert260320181514-1;
    26.03.2018 15:15:08;LE Challange;Info;Submitted challenge for Alias Cert260320181514-2;
    26.03.2018 15:15:08;LE Challange;Info;Try to submit challenge;
    26.03.2018 15:15:09;LE Challange;Info;Updated Identifier for Alias Cert260320181514-1;
    26.03.2018 15:15:10;LE Challange;Info;Updated Identifier for Alias Cert260320181514-2;
    26.03.2018 15:15:10;Certificate;Info;Try to create the certificate;
    26.03.2018 15:15:10;Certificate;Info;Using Cert260320181514-1 as certificates CN;
    26.03.2018 15:15:10;Certificate;Info;Certificate creation successfully, Alias SAN260320181514;
    26.03.2018 15:15:10;Certificate;Info;Try to submit the certificate to Let’s Encrypt;
    26.03.2018 15:15:11;Certificate;Error;Failed to submit the certificate for signing;Der Zugriff auf den Pfad „C:\ProgramData\ACMESharp\sysVault\45-KEYPM\a8941605-1fdf-4fe0-a1ce-2fbeec519543-key.pem“ wurde verweigert.

  18. Weis jemand wie ich diesen Fehler beheben kann ?

    Get-ACMEExtensionModule : Der Typ [ACMESharp.POSH.AcmeCmdlet] wurde nicht gefunden.
    In C:\certi\CertificateAssistant_v2_EX2016.ps1:199 Zeichen:18
    + $ACMEIISMocule = Get-ACMEExtensionModule ACMESharp.Providers.IIS
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidOperation: (ACMESharp.POSH.AcmeCmdlet:TypeName) [Get-ACMEExtensionModule], RuntimeException
    + FullyQualifiedErrorId : TypeNotFound,Get-ACMEExtensionModule

  19. Hi Frank,
    bin erst gestern auf Deinen Blog und Dein LE-Script aufmerksam geworden – richtig coole Arbeit! Hut-ab, sag ich nur. Ich habe die aktuelle Version Deines Scripts hier nun bei mir in einem LAB im Test, schaut jedoch sehr gut aus bis hierher und werde das dann für die Zukunft auch zu meinen Kunden tragen :-)
    VlG, Gerhard
    PS: was mir aufgefallen ist: wenn man mit der „falschen“ Version vom Script in einem „zu neuen“ Umfeld Srv2016/Ex2016 loslegt, muss man vorher die alten Sachen erst wieder loswerden (uninstall-module) bevor man mit dem „richtigen“ Script wieder loslegen kann…

  20. Moin,

    vielen Dank erstmal für die saubere Arbeit mit den LE-Skript für Ex-2016.
    In dem Skript wird die Version „ACMESharp 0.9.1.326“ forciert installiert.
    Unterstützt diese ACMESharp-Version bereits die Wildcard-Zertifikate von „Lets Encrypt“?
    Falls ja, könnte das Skript für Ex-2016 das Wildcard-Zertifikat bereits abholen oder müsste es skript-technisch erweitert werden? Was sind an der Stelle die Vorraussetzungen?

    MFG
    CK

  21. Hallo Christopher,
    bisher kann das Script keine Wildcard Zertifikate ausstellen. Die ACMESharp Version unterstützt bisher auch nicht das ACMEv2 Protokoll, daher kann ich auch noch keine Unterstützung anbieten. Ich hatte mir vorgenommen, noch etwas abzuwarten und falls es keine Unterstützung für das aktuelle Protokoll geben wird, dann eben einen anderen Client für das Script einzusetzen.
    Gruß,
    Frank

  22. Hallo @ll
    Den Fehler „Der Zugriff auf den Pfad „C:\ProgramData\ACMESharp\sysVault\45-KEYPM\e8fa163d-f1de-439c-81c1-*********-key.pem“ wurde verweigert“ hatte ich auch.
    Der Test mit:
    $efsTestFile = „$($env:ProgramData)\testing-efs.txt“
    ## If EFS isn’t supported, it will fail with this call to Create
    $x = [System.IO.File]::Create($efsTestFile, 100, „Encrypted“)
    $x.WriteByte(65)
    $x.Close()
    del $efsTestFile
    brachte auf dem problematischen System einen Fehler…

    Das EFS-Wiederherstellungszertifikat war abgelaufen. Zu finden ist dieses in der Default Domain Policy unter Computerkonfiguration, Richtlinien, Windows-Einstellungen, Sicherheitseinstellungen, Richtlinien für öffentliche Schlüssel, Verschlüsseltes Dateisystem.

    Einfach einen neuen Dateiwiederherstellungs-Agent erstellen und schon läuft alles ohne Probleme…

    Viele Grüße aus Berlin
    Jens

  23. Hi,

    Danke erstmal für das tolle Skript :-)

    Falls jemand ohne EFS auskommen will/muss klappt das so:

    1) Dienstkonto im AD anlegen und auf dem Exchange-Server in die Gruppe „Administratoren“ aufnehmen und in die Exchange-Sicherheitsgruppe „Organization Management“ („Server Management“ geht evtl. auch, habe ich noch nicht getestet).
    2) Mit dem Dienstkonto auf dem Exchange-Server anmelden und ein Verzeichnis (z.B. „C:\Letsencrypt“) erstellen. Darin dieses Skript ausführen:

    Import-Module ACMESharp -MinimumVersion 0.9.1.326
    Set-ACMEVaultProfile -ProfileName MyAcmeVault -Provider local -VaultParameters @{ RootPath =
    C:\Letsencrypt\MyAcmeVault“; CreatePath = $true; BypassEFS = $true }
    Initialize-ACMEVault -VaultProfile MyAcmeVault

    Zeilenumbruch in der 2. Zeile beachten ;-)

    Damit wird ein persönliches Profil für das Dienstkonto angelegt bei dem EFS deaktiviert ist.

    3) Task für die Aktualisierung des Zertifkates anlegen und im Kontext des Dienstkontos laufen lassen

    Gruß, Peter

  24. Vielen Dank für die Arbeit Frank!

    Und vielen Dank an Jens Löwe und Peter Klaffehn für die sehr hilfreichen Ergänzungen.

    Tolle Arbeit!

    Gruß,
    Volker

  25. Noch ein Nachtrag zu meiner Beschreibung für die Konfiguration ohne EFS. Der Name des benutzerdefinierten Vault-Profils (im Beispiel MyAcmeVault) muss in der Umgebungsvariable „ACMESHARP_VAULT_PROFILE“ hinterlegt werden wenn man das Profil nicht immer mit angeben will. Sorry, hatte ich im Beispiel vergessen. Nähere Infos hier:

    https://github.com/ebekker/ACMESharp/wiki/Vaults,-Vault-Providers-and-Vault-Profiles
    https://pkisharp.github.io/ACMESharp-docs/Local-Vault-EFS.html

    Gruß, Peter

  26. Hallo Frank,
    hab gerade die neue Version des Skripts auf einem neu installieren Server 2016 mit
    Exchange 2016 ausprobiert, bekomme aber am Ende folgende Fehlermeldung:

    18.05.2018 08:51:52 – Certificate – Info – Try to create the certificate
    18.05.2018 08:51:52 – Certificate – Warning – Using as certificates CN
    18.05.2018 08:51:52 – Certificate – Error – Failed to create the certificate SAN180520180851
    Hast du eine Idee, was da passiert ?
    Vielen Dank im Voraus !
    MfG

    Thomas Gebert

  27. Hallo,
    habe das selbe Problem wie Thomas:
    22.05.2018 17:27:50;Certificate;Error;Failed to create the certificate SAN220520181727;Unable to find an Identifier for the given reference

    Bin ebenfalls ratlos.

  28. Hallo Franky,

    auch bei mir meldet der Assistent als Fehler

    04.06.2018 12:39:27;Certificate;Error;Failed to create the certificate SAN040620181239;Unable to find an Identifier for the given reference

    Kannst du helfen?

    Beste Grüße

  29. Komme leider auch nicht mehr weiter: “ Certificate – Error – Failed to submit the certificate for signing…“

  30. Bei dem Certificate Error half letzlich folgendes „Workaround“:
    1) Script im PS Editor laden
    2) $DetermineExchangeFQDNs = $false
    3) $CustomFQDNs manuell befüllt $CustomFQDNs = @(„mail.domain.de“,“autodiscover.domain.de“)

    Dann habe ich das Script gespeichert und gleich im Editor ausgeführt. So hats zumindest bei mir geklappt.

  31. Ergänzung zum Kommentar 5. Juni 2018 um 17:33 :
    Nur für den Fall, dass es von Interesse ist. Meine Umgebung ist ein Hyper-V Gast mit Server 2016 Std und Exchange 2016 Std.

  32. Hallo
    Der Fehler „Unable to find an Identifier for the given reference“ lag bei mir daran das nicht für alle Exchange FQDN von mir belegt waren.

    Im Logfile fand sich der Hinweis:
    04.06.2018 12:15:12;Exchange FQDNs;Info;Getting Exchange Outlook Anywhere External FQDN;
    04.06.2018 12:15:15;Exchange FQDNs;Error;Error geting Exchange Outlook Anywhere FQDNs;Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.

    Nachdem Setzen aller FQDNs läuft alles wie gewünscht.

    MfG Alex

  33. Hallo Franky,
    vielen Dank für das Script, die Mühe und Arbeit und vor allem die regelmäßigen Veröffentlichungen!
    Bei unserem Exchange läuft das Script durch bis es versucht das Zertifikat bei LetsEncrypt einzureichen:

    08.06.2018 09:43:23 – Certificate – Info – Certificate creation successfully, Alias SAN080620180943
    08.06.2018 09:43:23 – Certificate – Info – Try to submit the certificate to Let’s Encrypt
    08.06.2018 09:43:26 – Certificate – Error – Failed to submit the certificate for signing

    VG, Christian

  34. Also ich habe eben den Fehler mit dem EFS behoben und das Skript nochmal ausgeführt.
    Es lief dann auch bis es diesen – auch schon von anderen angemerkten- Fehler warf:

    Certificate;Error;Failed to submit the certificate for signing;Unexpected error
    +Response from server:
    + Code: Forbidden
    + Content: {
    „type“: „urn:acme:error:unauthorized“,
    „detail“: „Error creating new cert :: authorizations for these names not found or expired: subd1.domain.de, subd2.domain.de“,
    „status“: 403
    }

  35. Hallo Frank,
    vielen Dank für deine tolle Arbeit ! Leider erhalte ich aber auch folgende Fehlermeldung :

    Certificate;Error;Failed to submit the certificate for signing;Unexpected error
    +Response from server:
    + Code: Forbidden
    + Content: {
    „type“: „urn:acme:error:unauthorized“,
    „detail“: „Error creating new cert :: authorizations for these names not found or expired: autodiscover.XXX.de, mail.XXX.de“,
    „status“: 403
    }

  36. Hallo und vielen Dank für die Aktualisierung des Skripts.
    Erfolgreicher Test mit Exchange 2016 auf Server 2012 R2 mit WMF 4.0.

    Der Mailserver muss für LE leider direkt per Port 80 ansprechbar sein, ein Reverse Proxy (Synology NAS) der die Subdomain für 80 und 443 weiterverteilt wird leider nicht unterstützt. Da gibt es aber im Netz Infos was man da wohl vielleicht ändern müsste. Oder gibts da schon einen Workaround? Geht jedenfalls mit 2 Minuten Port 80 umschalten in der Firewall.

    Certificate – Error – Failed to submit the certificate for signing <<<< dieser Fehler kam auch beim Proxy in Versuch eins. Bei Synology passiert sowas ähnliches. LE denkt direkt, alle Subdomains die validiert werden, sollten im öffentlichen DNS richtig auf den Host verweisen und Port 80 muss für alle Subdomains auch beim Antragsteller landen. Wenn nur eine Subdomain nicht dort ankommt, wird das SAN-Zertifikat in Gänze abgelehnt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.