Freitag, 23. August 2019

[EXCHANGE][MIGRATION] Eine OnPremise Exchange Migration durchführen


Voraussetzungen

Exchange 2007 kann nur auf maximal Exchange 2013 NICHT 2016 migriert werden
Exchange 2010 kann nur auf maximal Exchange 2016 NICHT 2019 migriert werden
Exchange 2013 kann NICHT auf einem Server 2016 installiert werden, nur Server 2012 R2
Exchange 2016 kann NICHT auf einem Server 2019 installiert werden, nur Server 2016

Active Directory functional level

Exchange 2013                  2003
Exchange 2016                  2008 R2
Exchange 2019                  2012 R2

Outlook Client

Exchange 2013                  Outlook 2007 SP3
Exchange 2016                  Outlook 2010 SP2
Exchange 2019                  Outlook 2013

Komplette Kompatibilität Matrix online

Cutover oder Coexistenz?

Entweder man löst den alten Exchange in einem Schritt ab, oder man lässt beide noch ein wenig laufen (coexistenz)

Jenachdem ist ein Extra-Schritt notwendig

Anmerkung, bei der Coexistenz sind extern ebenfalls «legacy» DNS nötig (legacy.contoso.com) sowie damit es extern funktioniert 2 externe IP Adressen
Patch-Status alter Exchange Server:
Bitte den alten Server so weit wie möglich Patchen und Updaten:
WICHTIG: Dies sind die im MINIMUM benötigten Patches gemäss Microsoft

Domain Level vom AD

Der Forest und Domain Functional Level sollten mindestens 2003 / 2008R2 sein, bitte wie hier beschrieben überprüfen:
Bzw:
Active Directory Users and Computers
-> Raise Domain Functional Level
Active Directory Domains and Trusts
-> Raise Forest Functional Level


Dienstag, 13. August 2019

[FRITZBOX] IPSEC File Configurationseinstellungen

ParameterBeschreibung
reject_not_encrypted = no; Internetzugang während VPN verbieten, kann auch die DynDNS Verbindung behinden, daher nur mit fester IP nutzen
dont_filter_netbios = yes; NetBIOS filtern, auf no gesetzt kann NetBIOS nicht genutzt werden
mode = phase1_mode_aggressive; Modus der IKE-Phase1 (Agressive Mode)
mode = phase1_mode_idp; Modus der IKE-Phase1 (Main Mode)
phase1ss = "all/all/all"; Sicherheitsstrategie IKE-Phase 1, auf automatisch gesetzt
phase2ss = "esp-all-all/ah-none/comp-all/pfs"; Sicherheitsstrategie IKE-Phase 2 (IPSec)
accesslist = "permit ip any 192.168.10.0 255.255.255.0"; erlaubte Netzwerke oder Hosts
pppoefw Router läuft im PPPOE Mode (nur als Modem)
dslifaces Router läuft im Router-Mode (NAT-Funktionalität)
dsldpconfig


Parameter für phase1ss
def/3des/sha Zugriff auf WatchGuard Firebox
alt/aes/sha Zugriff auf AVM Access Server
def/all/all alle Algorithmen, DH-Gruppe default
alt/all/all alle Algorithmen, DH-Gruppe alternativ
def/all-no-aes/all alle Algorithmen ohne AES, DH-Gruppe default
alt/all-no-aes/all alle Algorithmen ohne AES, DH-Gruppe alternativ
alt/aes-3des/sha AES 256 Bit oder 3DES, DH-Gruppe alternativ
all/all/all alle Algorithmen, DH-Gruppe alternativ

dh5/aes/sha
dh14/aes/sha
dh15/aes/sha
def/all/all
alt/all/all
all/all/all
LT8h/all/all/all



Parameter für phase2ss
esp-aes-sha/ah-sha/comp-lzjh/pfs Zugriff auf AVM Access Server, hohe Sicherheit
esp-aes-sha/ah-all/comp-lzjh-no/pfs Zugriff auf AVM Access Server, Standardsicherheit
esp-aes-sha/ah-no/comp-lzjh/pfs Zugriff auf AVM Access Server, ohne AH
esp-3des-md5/ah-no/comp-lzjh/pfs Zugriff auf AVM Access Server, mittlere Sicherheit
esp-3des-sha/ah-no/comp-no/no-pfs Zugriff auf WatchGuard Firebox
esp-all-all/ah-all/comp-all/pfs alle Algorithmen, mit PFS
esp-all-all/ah-all/comp-all/no-pfs alle Algorithmen, ohne PFS
esp-des|3des-all/ah-all/comp-all/pfs alle von Cisco unterstützten Algorithmen, mit PFS
esp-des|3des-all/ah-all/comp-all/no-pfs alle von Cisco unterstützten Algorithmen, ohne PFS
esp-des|3des-all/ah-all/comp-no/pfs MD5/SHA1/DES/3DES Algorithmen, mit PFS
esp-des|3des-all/ah-all/comp-no/no-pfs MD5/SHA1/DES/3DES Algorithmen, ohne PFS
esp-3des-shal/ah-no/comp-no/pfs Linux FreeS/WAN mit 3DES und PFS
esp-3des-shal/ah-no/comp-deflate/no-pfs Linux FreeS/WAN mit 3DES ohne Kompression
esp-all-all/ah-none/comp-all/pfs alle Algorithmen, ohne AH, mit PFS
esp-all-all/ah-none/comp-all/no-pfs alle Algorithmen, ohne AH, ohne PFS
esp-aes256-3des-sha/ah-all-sha/comp-lzs-no/pfs AES 256 Bit oder 3DES, AH optional, SHA, PFS
esp-aes256-3des-sha/ah-no/comp-lzs-no/pfs AES 256 Bit oder 3DES, kein AH, SHA, PFS

LT8h/esp-all-all/ah-none/comp-all/pfs
LT8h/esp-all-all/ah-none/comp-all/no-pfs



vpncfg {
     connections {
             enabled = yes;
             conn_type = conntype_lan;
             name = "SophosXG";
             always_renew = yes;                //kann auf "no" wenn die VPN nur bei gebrauch genutzt werden soll
             reject_not_encrypted = no;
             dont_filter_netbios = yes;
             localip = 0.0.0.0;
             local_virtualip = 0.0.0.0;
             remoteip = X.X.X.X;                 //Feste WAN IP der Firewall
             remote_virtualip = 0.0.0.0;
             localid {
                     ipaddr =  X.X.X.X;        // WAN IP der Fritzbox, hie die gleiche nehmen wie in der Firewall beim Remote Gateway konfiguriert, alternativ: fqdn = "xy.dyndns.org";
             }
             remoteid {
                     ipaddr = X.X.X.X;                  //Feste IP der Firewall
             }
             mode = phase1_mode_idp;
             phase1ss = "alt/all-no-aes/all";
             keytype = connkeytype_pre_shared;
             key = "XXXX";      //Hier muss der Preshared Key rein, wie auf der Firewall im IPsec connection eingetragen
             cert_do_server_auth = no;
             use_nat_t = no;
             use_xauth = no;
             use_cfgmode = no;
             phase2localid {
                     ipnet {
                             ipaddr = X.X.X.X;                 //Internes Netz der FritzBox
                             mask = 255.255.255.0;
                     }
             }
             phase2remoteid {
                     ipnet {
                             ipaddr = X.X.X.X;           //Internes Netz der Firewall
                             mask = 255.255.255.0;
                     }
             }           
             phase2ss = "esp-3des-sha/ah-no/comp-no/pfs";           //teilweise funktioniert phase2ss = "esp-all-all/ah-none/comp-all/no-pfs"; besser
             accesslist = "permit ip any X.X.X.X 255.255.255.0";      //Internes Netz der Firewall
     }
     ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500",
                         "udp 0.0.0.0:4500 0.0.0.0:4500";
}

Donnerstag, 11. Juli 2019

[EXCHANGE][OUTLOOK] Problem mit Autovervollständigung nach Exchange Serverwechsel

Wurde der Exchange-Server gewechselt, OHNE eine saubere Migration (kann bei sehr kleinen Umgebungen einfacher sein) kann in Outlook folgendes Problem erscheinen.

Schickt ein Benutzer nun das Mail an einen Benutzer, kommt eine Fehlemeldung zurück, ähnlich wie diese:
Die eingegebene E-Mail Adresse konnte nicht gefunden werden. ....
Und in den Diagnoseinformationen etwas wie:

IMCEAEX-_o=ExchangeLabs_ou=Exchange+20Administrative+20Group+20+28F23433HF23SPDLT+29_cn=Recipients_cn=f729334a33808dac4977673e9387-john+2Edoe@contoso.local
Remote Server returned '550 5.1.11 RESOLVER.ADR.ExRecipNotFound; Recipient not found by Exchange Legacy encapsulated email address lookup'


Entweder man geht nun bei allen im Outlook die alte Adresse in der Autovervollständigung löschen und neu eintragen, ODERman löst das Problem Golbal wie folgt:


Kopiert den String
IMCEAEX-_o=ExchangeLabs_ou=Exchange+20Administrative+20Group+20+28F23433HF23SPDLT+29_cn=Recipients_cn=f729334a33808dac4977673e9387-john+2Edoe@contoso.local

Im Editor nun folgendes:

_ ersetzen druch /
+20 ersetzen durch einen leerschlag
+28 ersetzen durch (
+29 ersetzen durch )
IMCEAEC- löschen
@contoso.local löschen

Am schluss sollte es wie folgt aussehen:
/o=ExchangeLabs/ou=Exchange Administrative Group (F23433HF23SPDLT)/cn=Recipients/cn=f729334a33808dac4977673e9387-john+2Edoe

Geht nun in die Exchange Admin Console oder Exchange Management Console

Auf den Benutzer drauf -> E-Mail Adresse

Hinzufügen -> Benutzerdefiniert

Benutzerdefinierter Adresstyp: X500
E-Mail Adresse: den String von oben

WICHTIG:
Nehmt das Häkchen raus für bei "E-Mail Adressen automatisch basierend auf der E-Mail Adressrtichtlinie aktualisieren" bzw. bei neueren Exchange via folgendem Exchange Powershell Befehl:
Set-mailbox "MAILADRESSE" -EmailAddressPolicyEnabled $false

Freitag, 28. Juni 2019

[EXCHANGE][OUTLOOK] Suche ergibt nur 250 Ergebnisse

Nach meinen Recherchen zufolge, spielen Dabei diverse Faktoren mit:

Outlook Version, Outlook Konto: Cache mode oder Online, Exchange Server Version

Je nach Outlook Version, benutzt Outlook die Lokale Version oder gibt die Suchanfrage weiter and den Exchange Server (Outlook 2016 mit Updates). Ist der Cache Modus aktiv, ist auch die lokale Suche verwantwortlich.

Sollte das Problem nur bei einem Benutzer sein:
Prüft bitte, ob Outlook in den Indizierungsorten eingebunden ist, ggf. auch mal den Index neu erstellen

Allgemein empfehle ich erst mal, folgende Guide durchzuarbeiten:
https://www.wintotal.de/tipp/alle-ergebnisse-in-der-sofortsuche-von-outlook-anzeigen/



Sollte dies nicht das Problem behoben haben, sind einstellungen auf dem Exchange Server nötig:

Exchange 2013:
Editiert die Datei "Microsoft.Exchange.Store.Worker.exe.CONFIG" wie folgt:


Fügt folgenden Code ein:
<appSettings>
<add key="MaxHitsForFullTextIndexSearches" value="2000" />
</appSettings>

(Sollte appSetting nicht vorhanden sein, bitte NACH </runtime> und VOR </configuration> einfügen)

Danach den Informationsspeicher Dienst neu starten

Exchange 2016 / 2019
Folgenden Exchange Powershell Befehl ausführen:

New-SettingOverride -Name "Increase Search Results Limit" -Component ManagedStore -Section StoreSettings -Parameters @("MaxHitsForFullTextIndexSearches=2000") -Reason "Increases Search Result Limit from 250 to 2000"

Mittwoch, 26. Juni 2019

[HYPER-V][ESX] Nach P2V Vortualisierung von altem OS, VM startet nicht, Bluescreen 0x7B

Ursache ist eigentlich ein Treiberproblem. Der Server war z.B. vorher mit RAID / SCSI und muss nun z.B. in Hyper-V Generation 1 mit IDE starten

Das Problem lässt sich wie folgt lösen

Zuerst das Harddisk-Image mounten, damit Ihr Zugriff auf die Dateien habt.
Laufwerksbuchstabe merken!

Prüfen ob folgende Dateien existieren:
windows\system32\drivers\intelide.sys
windows\system32\drivers\pciide.sys
windows\system32\drivers\atapi.sys

Falls nicht, findet Ihr die Datein in einem der .CAB Dateien innerhalb \windows\Driver Cache\


Die Registry des Gastes laden (annahme, Laufwerk E: ist der Bereitgestellte Gastserver):
mit folgendem CMD

reg load HKLM\VHDSYS E:\windows\system32\config\system

Eine Registry Datei mit folgendem Inhalt erstellen und diese öffnen:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\VHDSYS\ControlSet001\Services\PCIIde]
"ErrorControl"=dword:00000001
"Group"="System Bus Extender"
"Start"=dword:00000000
"Tag"=dword:00000003
"Type"=dword:00000001
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
52,00,49,00,56,00,45,00,52,00,53,00,5c,00,70,00,63,00,69,00,69,00,64,00,65,\
00,2e,00,73,00,79,00,73,00,00,00
"DisplayName"="Standard IDE/ESDI Hard Disk Controller"


[HKEY_LOCAL_MACHINE\VHDSYS\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_7110&cc_0601]
"ClassGUID"="{4D36E97D-E325-11CE-BFC1-08002BE10318}"
"Service"="isapnp"


[HKEY_LOCAL_MACHINE\VHDSYS\ControlSet001\Control\CriticalDeviceDatabase\primary_ide_channel]
"Service"="atapi"
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"


[HKEY_LOCAL_MACHINE\VHDSYS\ControlSet001\Control\CriticalDeviceDatabase\secondary_ide_channel]
"Service"="atapi"
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"

Danach mit CMD die Registry entladen:
reg unload HKLM\VHDSYS


Das Image entfernen und die VM starten

Bei Hyper-V und altem OS, die Integrationsdienste nicht vergessen (Googlesuche nach VMGuest.iso sollte einen Download Link erzielen)

Sollte die VM Immer noch nicht starten, ist ggf. die boot.ini Datei schuld (musste ich aber noch nie machen)

Probiert es mal und ändert von scsi.... auf multi....

multi(<Zahl>)disk(<Zahl>)rdisk(<Zahl>)partition(<Zahl>)\ %systemroot%="Beschreibung" /<Parameter>
scsi(<Zahl>)disk(<Zahl>)rdisk(<Zahl>)partition(<Zahl>)\ %systemroot%="Beschreibung" /<Parameter>
signature(<Zahl>)disk(<Zahl>)rdisk(<Zahl>)partition(<Zahl>)\ %systemroot%="Beschreibung" /<Parameter>



Sollte es immer noch nicht gehen, geht es evntl auch so:
aliide    3
amdide    3
atapi    0
cmdide    3
iastorv    3
intelide0
msahci    3
pciide    3
viaide    3
LSI_SAS    0

Dienstag, 11. Juni 2019

[EXCHANGE] Raumpostfächer richtig einstellen

Erst mal über das Exchange Admin Center ein Raumpostfach erstellen

Empfänger -> Ressourcen -> Raumpostfach

z.B. Sitzungszimmer


Empfohlene Einstellungen:
Buchungsanfragen automatisch annehmen oder ablehnen (ausser jemand will das Administrieren)


Buchungsoptionen:
Ggf. Zeitraum anpassen

Anmerkung: Serientermine machen ggf. Probleme
Buchungszeitraum: 0 ist NICHT unendlich, 1080 das Maximum

Es lässt sich aber dennoch mit folgendem Management Shell befehl umgehen:

Set-MailboxCalendarSettings -Identity Sitzungszimmer_EG -EnforceSchedulingHorizon $false
Set-MailboxCalendarSettings -Identity Sitzungszimmer_EG -BookingWindowInDays 1080

Set-CalendarProcessing -Identity "Sitzungszimmer_EG" -EnforceSchedulingHorizon $false
Set-CalendarProcessing -Identity "Sitzungszimmer_EG" -BookingWindowInDays 1080

Danach per Management Shell:

Aktuelle Berechtigungen anzeigen:
Get-MailboxFolderPermission sitzungszimmer:\calendar


Einem User (administrator) Editorenberechtigungen geben (darf löschen etc)

Neuer User (englischsprachiger Exchange):
Add-MailboxFolderPermission -Identity <Kalendername>:\calendar -User administrator -AccessRights Editor


Oder wenn bereits vorhanden:
Set-MailboxFolderPermission -Identity <Kalendername>:\calendar -User administrator -AccessRights Editor

Neuer User (deutschsprachiger Exchange):
Add-MailboxFolderPermission -Identity <Kalendername>:\kalender -User administrator -AccessRights Editor


Oder wenn bereits vorhanden:
Set-MailboxFolderPermission -Identity <Kalendername>:\kalender -User administrator -AccessRights Editor

Den Standard / Default User (=Alle) Anpassen:

(englischsprachiger Exchange):
Set-MailboxFolderPermission -Identity <Kalendername>:\calendar -User Default -AccessRights <Berechtigungsstufe>


(deutschsprachiger Exchange):
Set-MailboxFolderPermission -Identity <Kalendername>:\kalender -User Standard -AccessRights <Berechtigungsstufe>



Mögliche Berechtigungsstufen:

  • Owner — read, create, modify and delete all items and folders. Also this role allows manage items permissions;
  • PublishingEditor — read, create, modify and delete items/subfolders;
  • Editor — read, create, modify and delete items;
  • PublishingAuthor — read, create all items/subfolders. You can modify and delete only items you create;
  • Author — create and read items; edit and delete own items NonEditingAuthor – full read access and create items. You can delete only your own items;
  • Reviewer — read only;
  • Contributor — create items and folders;
  • AvailabilityOnly — read free/busy information from calendar;
  • LimitedDetails;
  • None — no permissions to access folder and files.

Mittwoch, 24. April 2019

[FRITZBOX][VPN][SOPHOS XG] IPSec VPN Site to Site zwischen Sophos XG und einer Fritzbox

Auf der Sophos XG folgende VPN Einstellungen:

IPsec policies -> Neu

Name: Fritzbox

IKEv1
Main Mode

Re-key connection: ein
Pass data in compressed format: ein

Phase 1:
DH Group 2
Encryption: 3DES, AES128, AES256
Authentication: SHA1, SHA1,SHA1

Phase 2:
DH Group 2

Encryption: 3DES, AES128, AES256
Authentication: SHA1, SHA1,SHA1


IPsec connection -> Neu

IPv4
Activate on save
Site to site
Initiate the connection bzw. respond only

Policy: Fritzbox (siehe oben)
Authentication type: Preshared Key

Local Gateway:
Port wählen (meist Port 2)
Local ID type: IP Adress
Local ID: x.x.x.x (eure WAN IP)
Local subnet:
z.B.: LAN_SUBNET (ggf. ein Objekt erstellen)

Remote gateway:
adress: x.x.x.x (WAN IP der Fritzbox)
Remote ID type: IP Adresse oder DNS
Remote ID: x.x.x.x (WAN IP der Fritzbox) oder DNS (z.B. xy.dyndns.org)
Remote subnet: VPN_XX_SUBNET (object des entfernten Netzwerks erstellen)



Auf der Fritzbox könnt Ihr diese VPN Config Datei einfach hochladen:

Internet -> Freigaben -> VPN -> VPN Einstellungen importieren

Edit:
/teilweise funktioniert phase2ss = "esp-all-all/ah-none/comp-all/no-pfs"; besser, mit P1: DH2, DES, MD5 P2: DES / MD5 und 28800 Lifetimes

Rot markiertes anpassen! Einfach in einer .cfg oder .txt Datei speichern


vpncfg {
     connections {
             enabled = yes;
             conn_type = conntype_lan;
             name = "SophosXG";
             always_renew = yes;                //kann auf "no" wenn die VPN nur bei gebrauch genutzt werden soll
             reject_not_encrypted = no;
             dont_filter_netbios = yes;
             localip = 0.0.0.0;
             local_virtualip = 0.0.0.0;
             remoteip = X.X.X.X;                 //Feste WAN IP der XG
             remote_virtualip = 0.0.0.0;
             localid {
                     ipaddr =  X.X.X.X;        // WAN IP der Fritzbox, hie die gleiche nehmen wie in der XG beim Remote Gateway konfiguriert, alternativ: fqdn = "xy.dyndns.org";
             }
             remoteid {
                     ipaddr = X.X.X.X;                  //Feste IP der XG
             }
             mode = phase1_mode_idp;
             phase1ss = "alt/all-no-aes/all";
             keytype = connkeytype_pre_shared;
             key = "XXXX";      //Hier muss der Preshared Key rein, wie auf der XG im IPsec connection eingetragen
             cert_do_server_auth = no;
             use_nat_t = no;
             use_xauth = no;
             use_cfgmode = no;
             phase2localid {
                     ipnet {
                             ipaddr = X.X.X.X;                 //Internes Netz der FritzBox
                             mask = 255.255.255.0;
                     }
             }
             phase2remoteid {
                     ipnet {
                             ipaddr = X.X.X.X;           //Internes Netz der XG
                             mask = 255.255.255.0;
                     }
             }           
             phase2ss = "esp-3des-sha/ah-no/comp-no/pfs";         
             accesslist = "permit ip any X.X.X.X 255.255.255.0";      //Internes Netz der XG
     }
     ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500",
                         "udp 0.0.0.0:4500 0.0.0.0:4500";
}

Dienstag, 23. April 2019

[SSL][IIS][EXCHANGE]SSL Zertifikat mit Namecheap für z.B. IIS / Exchange einrichten


Security -> SSL Certificates
Je nachdem was Ihr braucht, das Zertifikat auswählen. Wichtig, man braucht für jeden Namen eins.
Ich nehme da meistens „PositiveSSL Multi-Domain“ wo 3 Namen inklusive sind

z.B.: www.xy.ch und xy.ch
z.B.: mail.xy.ch, autodiscover.xy.ch

Bestellt dies ganz normal via namechap.

Für den CSR (Certificate Signing Request) nutze ich gerne folgende Webseite:
https://decoder.link/csr_generator

Füllt da die erste Domäne aus, Name, Ort, Mail, Country Code (CH für Schweiz) und unter Show advanced settings die weiteren Domänen. Diese Angaben werden im Zertifikat für jeden ersichtlich sein

Wichtig:
Key Algorithm: RSA 4096
Hash Algorithm: SHA-2(512)
Private Key Algorithm: AES-256

Die Mailadresse sollte überall eine richtige sein, da dort vor dem Ablauf auch eine automatische Mailadresse hingeschickt wird!

GANZ WICHTIG:
Kopiert euch am ende den CSR sowie den PRIVATE KEY (ganz wichtig!) und das Certificate

Bei Namcheap müsst Ihr nun den CSR reinkopieren, prüft nochmals die Domänennamen und passt diese ggf. nochmals an falls ihr zusätzliche habt (der CSR-Generator kann nur maximal 6).

Am besten Ihr wählt IIS als Webserver aus (falls die Frage kommt)

Als nächstes muss die Domäne Validiert werden (damit wird sichergestellt, damit die Domäne im Zertifikat auch euch gehört)

Am einfachsten ist meist per mail an admin@xy.ch
Im Notfall eröffnet halt die Mail kurz beim Hoster oder wo auch immer, oder setzt euch einen Alias…

Ihr bekommt dann eine Mail (pro Domain) mit einem Link und einem «Passwort» welches auf dem Link eingegeben werden muss

Nach ca. 5min sollte das Zertifikat als .zip mit folgendem Inhalt

www_xy_ch.ca-bundle
www_xy_ch.crt
www_xy_ch.p7b

Entpackt das ganze wo hin. Erstellt in dort eine neue Datei private.key und kopiert dort den Private Key rein (----BEGIN RSA PRIVATE KEY--- etc.)

Ladet euch nun eine OpenSSL Binary runter, z.B:
https://slproweb.com/products/Win32OpenSSL.html

Kopiert nun bitte die ganzen Zertifikate-Dateien in den Binary Ordner:
C:\Program Files\OpenSSL-Win64\bin

Im CMD (als Admin) geht Ihr dann in den Ordner der Binary (ggf. Pfad zur OpenSSL Binary anpassen)

cd C:\Program Files\OpenSSL-Win64\bin

Und führt folgende Befehl aus

openssl.exe pkcs12 -export -out certificate.pfx -inkey private.key -in www_xy_ch.crt -certfile www_xy_ch.ca-bundle

Optional (Empfohlen, da es den PrivateKey enthält) könnt Ihr nun ein Passwort noch eingeben

Nun sollte eine Datei certificate.pfx dort generiert werden mit allem drin was nötig ist (Certifikat, Private Schlüssel, Zwischenzertifikat des Herausstellers).

Die anderen Dateien welche Ihr reinkopiert habt können wieder dort gelöscht werden

Sollten andere Formate benötigt werden, schaut bitte hier nach:
http://blog.thunderbyte.ch/search/label/SSL


Die certificate.pfx bringt Ihr wie folgt in den IIS

Ausführen -> mmc
Datei Snap In hinzufügen
Zertifikate
Computerkonto -> Lokaler Computer

Den Baum öffnen
Webhosting -> Zertifikate

Aktion -> Alle Aufgaben -> Importieren

Privater Informationsaustausch (.pfx) auswählen und die Datei auswählen

Falls gesetzt nun das Passwort eingeben
Häckchen bei «Schlüssel als exporterbar markieren» setzen

WICHTIG:
Das Zertifikat ist nun dort drin. Prüft ob dort steht, wenn Ihr es öffnet: Sie besitzen einen privaten Schlüssel für dieses Zertifikat

Falls nicht, nützt euch das ganze Zertifikat nichts bzw. der Private Schlüssel fehlt

Im IIS Manager sollte nun das Zertifikat in der Bindung (https) auswählbar sein
Internetinformationsdienst (ISS)-Manager

Webserver -> Sites
z.B. Default Web Site
Rechts auf Bindungen

HTTPS bearbeiten und dort das Zertifikat auswählen

Prüfen:
Sollte die Webseite / IIS öffentlich zugänglich sein, könnt Ihr dies mit z.B. folgender Webseite nochmals prüfen:
https://decoder.link/sslchecker/

https://ssl-trust.com/SSL-Zertifikate/check

Mögliche Fehler:
Kommt beim import ein RCP-Fehler, kann das verschiedene Ursachen haben.
Probiert erstmal den import via Powershell:

$mypwd = Get-Credential -UserName 'Enter password below' -Message 'Enter password below'
Import-PfxCertificate
-FilePath C:\mypfx.pfx -CertStoreLocation Cert:\LocalMachine\My -Password $mypwd.Password
Sollte folgender Fehler erscheinen:
"The PFX file you are trying to import requires either a different password or membership in an Active Directory principal to which it is protected"

müsst Ihr die Verschlüsselung runterschrauben mit OpenSSL:

openssl.exe pkcs12 -incertificate.pfx -out certificate.pem

gefolgt von:

openssl.exe pkcs12 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -in certificate.pem -out newcertificate.pfx -name "my-name"


UPDATE JUNI 2025:
Sectigo ändert das CA Cert, neu wird "Sectigo Public Server Authentication Root R46" genutzt.
Ggf. haben vertrauen aber ältere Systeme diesem nicht.

Workarround:
In der Zertifikate MMC das "
Sectigo Public Server Authentication Root R46" deaktivieren:

Anmerkung: Bilder sind Falsch
https://www.namecheap.com/support/knowledgebase/article.aspx/9774/2238/incomplete-certificate-chain-on-windows-servers/ 

Anschliessend Server neu starten