Mein Ziel ist es, das Zertifikat für Exchange Server aus einer C# -App zu aktualisieren, genau wie die Enable-ExchangeCertificate
PS Cmdlet tut.Update Exchange Server-Zertifikat in C#
Ich habe bereits einen Updater für IIS geschrieben, der verwendet, um auf IIS-Sites und -Bindungen zuzugreifen und diese zu bearbeiten. Ich habe Google und VS Libraries nach Exchange API-Tools durchsucht, aber ohne Glück. Ich kann nur Referenzen auf EWS (Exchange Web Services) finden, die das Serverzertifikat AFAIK nicht aktualisieren können.
Gibt es eine API, die verwendet werden kann? Wie stellt Enable-ExchangeCertificate
die Funktionalität zur Verfügung? Ich denke auch darüber nach, nur das PS-Cmdlet zu verwenden, wenn alles andere fehlschlägt, aber ich möchte eine eigenständige App haben, auf die ich mich verlassen kann. Keine Remote-Server-Verwaltung benötigt, localhost-only ist in Ordnung.
tl; dr Wie aktualisiert man ein lokales Exchange Server-Zertifikat in C#?
EDIT Ich werde weiter in die EWS-API (https://github.com/OfficeDev/ews-managed-api/blob/master/README.md) schauen, es sieht aus wie es die Arbeit tun könnte. Es bietet Assemblys für den Zugriff auf EWS-Daten, aber ich habe keine API-Aufrufe ausschließlich für die Zertifikatsverwaltung gefunden.
OK, ich rufe Enable-ExchangeCertificate dann einfach von meiner App aus an. Ich möchte automatisch Zertifikate von Let's Encrypt importieren und aktivieren. BTW-Import von verschlüsselten PFX-Dateien funktioniert nahtlos durch die bereitgestellten System-Bibliotheken in dotnet. Die PFX-Passphrase wird nur in verschlüsselter Form auf der Festplatte gespeichert. Ein Angreifer benötigt die Kenntnis dieses Verschlüsselungsschlüssels, um etwas Schädliches zu tun, d. Installieren Sie ein schädliches Zertifikat. Danke für diese Menge an Informationen, ich hätte etwas mehr Forschung betreiben sollen, bevor ich frage ... – NoMad
Ah ich sehe. Es gibt ein LetsEncrypt Powershell-Modul. Vielleicht möchten Sie das auch in Ihre Bewerbung einbeziehen, damit Sie nicht das ganze Leben neu erfinden müssen. Was ich jedoch bevorzugen würde wäre ein komplettes Powershell-Skript, dann eine C# -App. – BastianW
Ich habe versucht, einige Lösungen für LE auf Windows, IMO die Linux-Clients sind stabiler/arbeiten besser. Eine reine PS-Lösung wäre nett, aber für Linux-Kompatibilität verwende ich getssl, packen und verschlüsseln mit openssl, dann schiebe die Ausgabe auf eine Windows-Freigabe, wo mein Dienst es aufnehmen, importieren und für IIS-Bindungen und Exchange aktivieren kann. – NoMad