Tag: Domino Certification Authority

  • Certificate Store voor SSL certificaten

    Certificate Store voor SSL certificaten

    Sinds Domino versie 12 is er weer een nieuwere methode om SSL certificaten te beheren binnen de Domino omgeving.
    HCL introduceerde daarvoor een nieuwe servertaak, Certificate Manager (CertMgr), die samenwerkt met een nieuwe database, Certificate Store (certstore.nsf), om de generatie van TLS-certificaten van de Let’s Encrypt-certificeringsinstantie (CA) en andere externe CA’s te automatiseren.
    CertMgr vereenvoudigt en beveiligt de werking van de Domino-webserver door automatisch gratis, breed vertrouwde TLS-certificaten aan te vragen, te configureren en te verlengen bij de Let’s Encrypt-certificeringsinstantie (CA) of een andere externe CA.

    In de Certificate Store kunnen ACME accounts, , DNS Providers en Configuaties, Trusted Roots, wachtwoorden en TLS Credentials worden ingesteld en opgeslagen.

    Gebruik van de Certificate Store Applicatie:

    De CertMgr-servertaak werkt met de Certificate Store-database (certstore.nsf) om certificaataanvragen en -beheer te vereenvoudigen. Als uw HCL Domino-server via uitgaande poort 443 en inkomende poort 80/443 met internet is verbonden, kunt u een certificaataanvraag genereren door (eenmalig) de volgende opdracht op de serverconsole uit te voeren:
    load certmgr -ACCEPT_TOU_AUTO_CONFIG

    (gelijk aan: load certmgr -r -c -o -y -ACCEPT_TOU )
    Met deze opdracht voert CertMgr de volgende stappen uit:
    Accepteert de gebruiksvoorwaarden voor de Let’s Encrypt®-certificeringsinstantie (-ACCEPT_TOU).
    Certstore.nsf wordt aangemaakt.
    De hostnaam van de machine wordt bepaald en een eerste certificaat wordt aangevraagd (-r).
    Het DSAPI-filter wordt geconfigureerd (-c).
    HTTP wordt gestart (-o) of HTTP wordt opnieuw gestart als deze al actief is (-c).
    Een certificaat wordt aangevraagd bij de Let’s Encrypt-certificeringsinstantie via het ACMEv2-protocol.
    Een .kyr-bestand wordt gegenereerd en op schijf opgeslagen.
    HTTP wordt opnieuw gestart om het .kyr-bestand te laden (-y).
    Ditzelfde certificaataanvraagscenario kan worden geautomatiseerd met behulp van de volgende notes.ini-instellingen:
    CertMgr_ACCEPT_TOU=1
    CertMgr_AutoRequestCert=1
    CertMgr_AutoConfig=1
    CertMgr_AutoConfigHttp=1
    CertMgr_RestartHttp=1

    Importeren

    Een eigen certificaat importeren in de TLS credentials van de Certificate Store kan natuurlijk ook.
    Zorg dan dat de hele certificaat keten uit bijvoorbeeld een PEM bestand formaat in een nieuw PEM bestand komt te staan met als eerste de tekst uit de private key. Noem dit bestand bijvoorbeeld fullchain.pem.

    —–BEGIN PRIVATE KEY—–
    ==content==
    —–END PRIVATE KEY—–
    —–BEGIN CERTIFICATE—–
    ==content==
    —–END CERTIFICATE—–
    —–BEGIN CERTIFICATE—–
    ==content==
    —–END CERTIFICATE—–

    Maak gebruik van een bestaande, of maak een nieuwe TLS credential in de Certificate Store.

    Importeer het eerder gemaakte gecombineerde bestand.

    Certificaat koppelen aan Website

    De TLS-cache zorgt voor het vinden van TLS-referenties. Het opzoeken kan via de DNS-naam, wat de nieuwe voorkeursmethode is. U vervangt dus de kyr-bestandsnaam door de DNS-naam. De nieuwe cache begrijpt ook KYR-bestandsnamen en gebruikt deze als tag voor het opzoeken.

    Maar dan moet in het TLS-referentiedocument de kyr-bestandsnaam zijn ingesteld (wat optioneel is in het TLS-referentiedocument en bedoeld is voor dit gebruik). De juiste manier is om altijd een DNS-naam op te geven. De nieuwe TLS-cache begrijpt DNS-namen, inclusief wildcard-certificaten, en ondersteunt meerdere SAN’s.

    Voorbeeld van een Web Site document:

    Met een bijbehorende  TLS referentie:

    Controle

    Door de certificaten met de Key file naam te vergelijken kan gecontroleerd worden of er een verband is tussen de TLS Credential en het Web Site document.

    tell certmgr show certs
    [19D0:0002-5264] Subject key identifier Key info Expiration KeyFile/Tag Host names (SANs)
    [19D0:0002-5264] ——————————————————————————————————————————————————
    [19D0:0002-5264] D5A9 FD93 2843 8506 … RSA 2048 88,6 days mrpowerzbook.ineco.nl
    [19D0:0002-5264] ——————————————————————————————————————————————————
    [19D0:0002-5264] 1 TLS Credentials

    tell http show security

    09-05-2025 22:56:17
    09-05-2025 22:56:17 Web Site: test (mrpowerzbook.ineco.nl)
    09-05-2025 22:56:17 SSL enabled
    09-05-2025 22:56:17 Key file name: c:\program files\hcl\domino12\data\mrpowerzbook.ineco.nl

    Dit laatste resultaat ziet er vreemd uit, maar negeer in dit geval het pad en kijk alleen of de hostname van het eerste resultaat gelijk is aan wat het bestand zou moeten zijn in het pad van het tweede resultaat. Dit is nog een kleine onvolkomendheid in de functie van HCL. In Dit geval is mrpowerzbook.ineco.nl gelijk in beide gevallen wat aangeeft dat het juiste certificaat is gekoppeld aan de website.

  • SSL certificaat omzetten naar Domino kyr bestand – de nieuwe methode

    SSL certificaat omzetten naar Domino kyr bestand – de nieuwe methode

    Vorig jaar schreef ik een stukje op dit blog over het omzetten van een wildcard certificaat naar een Domino kyfile om te gebruiken met de Domino webserver.
    Dit moest toen nog met een omslachtige methode die hier beschreven is: ssl-certificaat-omzetten-naar-domino-kyr-bestand

    Met een IBM Domino Administrator / IBM Notes cliënt vanaf versie 9.0.1 FP2 IF2 is het importeren van een (SHA-2) (wildcard) certificaat van een ander systeem zoals Microsoft Internet Information Services zonder een nieuw Certificate Signing Request een fluitje van een cent geworden.

    Deze stappen beschrijven het proces op een Microsoft besturingssysteem.

    Benodigdheden:

    • IBM Domino Administrator / IBM Notes, minimaal versie 9.0.1 FP2 IF2, of HCL versies vanaf 10.x.
    • OpenSSL (www.openssl.org)
    • Domino Keyring Tool (support.hcltechsw.com)
    • Eenvoudige tekstverwerker zoals kladblok of Notepad++

    Installeer de benodigde programma’s op het werkstation.

    Kopieer kyrtool.exe naar de Notes programma map waar ook nlnotes.exe staat e.d.

    Indien het certificaat geen pfx bestand is dient dient het wildcard certificaat eerst te worden geëxporteerd of te worden omgezet naar een pfx bestand. Zorg er voor zowel de private key en alle certificaten in de keten te exporteren. Exporteren kan vanuit IIS, maar ook via een Browser.

    In de volgende stappen gaan we er van uit dat het pfx bestand was geëxporteerd naar een map cert op de C: schijf van het werkstation.

    Open een Windows command prompt en start OpenSSL. Type het volgende commando om het geëxporteerde pfx bestand om te zetten naar een pem bestand

    pkcs12 -in -out -nodes -chain

    in ons voorbeeld wordt dat dus:

    pkcs12 -in c:\cert\test.pfx -out c:\cert\server.pem -nodes -chain

    Open het hierboven gemaakte pem bestand met bijvoorbeeld Notepad++. De Private key en de informatie van uw wildcard certificaat zouden zichtbaar moeten zijn, en indien van toepassing  de informatie van het intermediair en root certificaat van uw CA.

    Als alleen de private key en eigen wild card informatie beschikbaar is zullen de intermediair en root certificaat informatie geëxporteerd  moeten worden uit de pfx bestanden door middel van certmgr.msc in de volgende stappen, of deze informatie moet beschikbaar zijn van de certificaat aanbieder.

    Open certmgr.msc en importeer het .pfx bestand.

    Als voorbeeld hebben wij de informatie van onze eerdere publicatie gebruikt:

    In dit voorbeeld heeft een klant 1 bestand met de extensie pfx.
    Start Internet Explorer, klik op Extra > Internet opties > Inhoud.

    certsrv_ie01

    Klik op de knop Certificaten.

    certsrv_ie02

    In het venster Certificaten klik je op Importeren.

    certsrv_ie03

    Klik op volgende en selecteer Bladeren.

    certsrv_ie04

    Blader naar de map waar de SSL certificaten staan. Verander eventueel bij Bestandstypen de juiste extensie.
    In ons geval hebben we de klantnaam even aangepast naar wildcard.demo.pfx, dit zal normaal iets zijn als *.uwbedrijfsnaam.pfx.

    certsrv_ie05

    Open het bestand.

    certsrv_ie06

    Klik op volgende.

    certsrv_ie07

    Geeft het wachtwoord op dat bij de sleutel hoort en zet eventueel een vinkje bij “Deze sleutel als exporteerbaar aanmerken.” en klik op volgende.

    certsrv_ie08

    Klik op volgende of pas eerst de archief locatie aan indien deze niet goed staat.

    certsrv_ie09

    Controleer de inhoud en klik op Voltooien.
    Als het goed is komt er een melding dat het importeren voltooid is. Klik daar op OK.

    certsrv_ie10

    Als het goed is zal in het venster Persoonlijk uw certificaat staan. In ons geval is de klantnaam doorgestreept.

    certsrv_ie11

    Wanneer de import gelukt is kan er gekozen worden voor Persoonlijk -> Certificaten en klik vervolgens op het geïmporteerde wildcard certificaat.

    Klik op het Certificaat tabblad.

    Selecteer het intermediair certificaat en klik details.

    Klik in het nieuwe venster op details en selecteer kopieer naar bestand.

    Exporteer het intermediair certificaat als een Base-64 encoded X.509 cer bestand.

    Als er meerdere intermediair certificaten zijn dan dienen deze ook op de zelfde manier geexporteert te worden.

    Selecteer het certificaat opnieuw en exporteer het root certificaat naar een Base-64 cer bestand.

    Open het geexporteerde intermediair en root certificaat bestand met een tekstverwerker als Notepad++

    Open ook met Notepad++ de private key en certificaat informatie van het wild card certificaat uit het pem bestand.

    kopieer achter de tekst van het pem bestand de tekst van het intermediair certificaat/certificaten en als laatste de tekst van van het root certificaat, en sla de gecombineerde tekst op als server.txt

    Nu kan de informatie in server.txt gecontroleerd worden door het programma kyrtool.
    Het programma zal rapporteren of de informatie over de certificaten correct is en in de juiste volgorde staat.

    Open een command prompt (cmd) en navigeer naar het pad waar kyrtool.exe staat en gebruik het kyrtool verify commando op de volgende manier:

    kyrtool verify c:\cert\server.txt

    Verzeker je er van dat er geen foutmeldingen gemeld worden en dat de laatste regel aangeeft dat het certificaat self signed is (alle root certificaten, zelfs afkomstig van CA’s are self signed)

    Als er geen fouten zijn geconstateerd kan er een nieuw key ring bestand gemaakt worden door kyrtool create -k -p commando, bijvoorbeeld: e,g

    kyrtool create -k c:\cert\keyring.kyr -p aneasypassword

    Dit commando genereert ook het stash bestand voor de keyring, wat noodzakelijk is voor Domino. Het bestand heeft de zelfde naam als het key ring bestand, maar heeft een .sth extentie.

    Als deze stap zonder foutmeldingen is uitgevoerd kan de kyrtool gebruikt worden om de gegevens uit het server.txt bestand te importeren in het key ring bestand.
    gebruik hiervoor het commando kyrtool import all -k -i, bijvoorbeeld:

    kyrtool import all -k c:\cert\keyring.kyr -i c:\cert\server.txt

    Als deze stap correct is uitgevoerd kan er van de bestaande key ring bestanden van de server (.kyr and .sth) een reserve kopie gemaakt worden zodat in het geval van een fout de huidige bestanden terug gezet kunnen worden.

    Om zeker te zijn dat Domino de sleutels kan lezen kunnen we deze nogmaals openen in IBM Notes met de “Server Certificate Admin” applicatie. Deze stap is optioneel natuurlijk.

    Klik daarvoor in link in het menu op “View & Edit Key Rings”
    Kies boven in het menu voor de knop “Select Key Ring to Display”

    Type het volledige pad in naar het sleutelringbestand dat we in de eerdere stappen hebben gemaakt en aangepast.
    Geef het wachtwoord in en klik OK.
    Als alles goed is gegaan zien we nu bij Site Certificates een KeyPair en ons persoonlijke certificaat.
    Bij Certificate Authorities moeten het root- en intermediate certificaten staan die we eerder hebben geïmporteerd.

    certsrv_ie17
    Als dit klopt kunnen we het *.kyr en bijbehorend *.sth bestand kopiëren naar de data map van de Domino Server.

    In de configuratie van de Domino server dient de naam van het sleutelbestand natuurlijk overeen te komen met de bestandsnaam.

    Herstart de HTTP taak en als het goed is heb je een werkend SSL certificaat. Controleer dit eventueel door op de Domino console het commando “Tell HTTP show security” in te geven.

    Als alles zonder fouten is gelukt kunnen de tijdelijke bestanden van op het lokale werkstation verwijderd worden (om eventueel misbruik te voorkomen).

    Mocht je er ondanks deze instructies niet uitkomen kun je altijd contact met ons opnemen. Of plaats je reactie onder dit bericht.