Posts mit dem Label SSL werden angezeigt. Alle Posts anzeigen
Posts mit dem Label SSL werden angezeigt. Alle Posts anzeigen

Freitag, 29. Mai 2020

[TOMCAT][SSL] Zertifikat mit .pfx nutzen

Folgende Datei in einem Editor öffnen:

%TOMCAT_HOME%/conf/server.xml

Folgender Inhalt suchen:
<!-- <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" /> -->

Kommentarmarker
<!--
-->
löschen


Folgenden Inhalt NACH sslProtocol="TLS" und VOR /> einfügen, roter text der Umgebung anpassen:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile=”/path/to/mycert.pfx” keystoreType=”PKCS12″ keystorePass="your_PKCS12_password" />

Speichern und Tomcat neu starten



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


Mittwoch, 25. Juli 2018

[SSL][ZYWALL][SOPHOS][GPO] SSL Zertifikat per GPO Verteilen

Um ein SSL Zertifikat (z.B. das der Sophos / ZyWall für SSL Inspection) per GPO zu verteilen, geht man wie folgt vor:


SSL Zertifikat Sophos
-------------------------------------------------------------------------------------------------------------------

System -> Certificates
Certificate Authorities

Hier das SecurityAppliance_SSL_CA Downloaden (Button ganz rechts)



SSL Zertifikat ZyWALL
-------------------------------------------------------------------------------------------------------------------

Configuration -> Object -> Certificate

Das Zertifikat unter My Certificates öffnen

Ganz untern exportieren (ohne PrivateKey)






SSL Zertifikat per GPO Verteilen
-------------------------------------------------------------------------------------------------------------------

Auf eurem DC eine GPO erstellen oder bestehende Bearbeiten

Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Public Key Policies -> Trusted Root Certificates Authorities
Rechte Maustaste -> Import

Dem Dialog folgen und das Zertifikat welches wir vorhin heruntergeladen haben auswählen (unten Rechts Dateityp wechseln)


SSL Zertifikat per GPO Verteilen - FireFox
-------------------------------------------------------------------------------------------------------------------

Standardmässig vertraut FireFox nicht dem Windows Zertifikatspeicher. Die lässt sich wie folgt beheben:

Firefox 64bit: C:\Program Files\Mozilla Firefox\defaults\pref
Firefox 32bit: C:\Program Files (x86)\Mozilla Firefox\defaults\pref

Hier folgende Datei erstellen:
firefox-windows-truststore.js

Inhalt:
/* Enable experimental Windows trust store support */
pref("security.enterprise_roots.enabled", true);


Script für eine GPO:
if exist "C:\Program Files\Mozilla Firefox\defaults\pref" (
    if exist "C:\Program Files\Mozilla Firefox\defaults\pref\firefox-windows-truststore.js" (
    echo 1
    ) else (
        copy "X:\Sophos\firefox-windows-truststore.js" "C:\Program Files\Mozilla Firefox\defaults\pref\firefox-windows-truststore.js"
        echo %computername% >> X:\Sophos\log.txt
    )
)

if exist "C:\Program Files (x86)\Mozilla Firefox\defaults\pref" (
    if exist "C:\Program Files (x86)\Mozilla Firefox\defaults\pref\firefox-windows-truststore.js" (
    echo 2
    ) else (
        copy "X:\Sophos\firefox-windows-truststore.js" "C:\Program Files (x86)\Mozilla Firefox\defaults\pref\firefox-windows-truststore.js"
        echo %computername% >> X:\Sophos\log.txt
    )
)

GPO:
Computerkonfiguration -> Richtlinien -> Windows Einstellungen -> Skripts -> Start

Freitag, 20. Oktober 2017

[TOMCAT][SSL] Lets Encrypt mit Apache Tomcat nutzen

Wichtig: Der Apache muss mit Port 80 erreichbar sein!
Gegebenenfalls muss Apache angepasst werden

Lets Encrypt Win Simple installieren, oder sofern ein IIS vorhanden, CertifyTheWeb (siehe Nachtrag!):

https://github.com/Lone-Coder/letsencrypt-win-simple


letsencrypt.exe via CMD starten


E-mail angeben und akzeptieren

Neues zertifikat: N
Manuel die Hostnamen eingeben: 4
Hostnamen eingeben (kommagetrennt): mail.contoso.com, xy.contoso.com

Webroot ist bei Apache:
C:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps


Sollte alles korrekt sein, wird nun das zertifikat, die Pfade etc erstellt. 
Wichtig hierbei:
Authorization result: valid

Für das erneuern wird eine Windows Aufgabe erstellt, ich würde keinen Benutzer angeben, also: N

Neustarten wollen wir nicht, sofern alles geklappt hat, also: N



CygWin installieren (https://cygwin.com/install.html) (Einfach weiter, OpenSSL ist standardmässig dabei)

oder alternativ eine Binarie:
https://wiki.openssl.org/index.php/Binaries

In Notepad++ (https://notepad-plus-plus.org/) ein neues Shellscript erstellen:

#!/bin/bash
cd "C:\ProgramData\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org"
openssl pkcs12 -export -in domainname-crt.pem -inkey domainname-key.pem -out cert_and_key.p12 -password pass:PASSWORT

Wichtig: bearbeiten -> format zeilenende -> unix

Das File als LE_TO_PKCS12.sh speichern in: C:\cygwin64\home\Administrator

In C:\cygwin64 ein neues .bat File erstellen: LETSENCRYPT_TO_TOMCAT.bat

C:\cygwin64\bin\bash --login -c "./LE_TO_PKCS12.sh"
ping localhost
"C:\Program Files\Apache Software Foundation\Tomcat 8.0\bin\tomcat8.exe" stop
"C:\Program Files\Apache Software Foundation\Tomcat 8.0\bin\tomcat8.exe" start


Tomcat "servers.xml" anpassen: webroot\conf\servers.xml
keystoreFile="C:\ProgramData\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org\cert_and_key.p12"
keystoreType="PKCS12"
keystorePass="PASSWORT"

Das Batchfile "LETSENCRYPT_TO_TOMCAT.bat" in der Aufgabenplanung für eine Monatliche ausführung planen.
Testweise die Aufgabe gleich einmal ausführen



NACHTRAG:
Bei CertifyTheWeb, würde das .sh script wie folgt aussehen:
#!/bin/bash
cd "C:\ProgramData\ACMESharp\sysVault\99-ASSET"
openssl pkcs12 -in cert_ident1652b3d9-all.pfx -clcerts -nokeys -out domain.cer -password pass:
openssl pkcs12 -in cert_ident1652b3d9-all.pfx -nocerts -nodes  -out domain.key -password pass:
openssl pkcs12 -in cert_ident1652b3d9-all.pfx -out domain-ca.crt -nodes -nokeys -cacerts -password pass:


openssl pkcs12  -in cert_ident1652b3d9-all.pfx -out domain.pem -nokeys -clcerts -password pass:
openssl pkcs12 -export -in domain.pem -inkey domain.key -out cert_and_key.p12 -password pass:PASSWORT


Der KeystoreFile-Pfad wäre dann auch entsprechend:
C:\ProgramData\ACMESharp\sysVault\99-ASSET\cert_and_key.p12

Donnerstag, 28. September 2017

[SSL] Ein SSL Zertifikat in andere Formate konvertieren leicht gemacht

Update: https://www.sslshopper.com/ssl-converter.html


Obiger Link kann als einfache alternative genutzt werden

--------------------------------------------

In Windows ist das Zertifikatsformat PKCS12 (*.pfx) am gängisten (IIS, Exchange)

Manchmal bekommt man ein zertifikat jedoch als *.key und *.crt Datei oder als einfachen Text

Hier zeige ich euch, wie Ihr die verschiednenen Formate ändern könnt


Wichtig zu wissen:
-PKCS7 (*.p7b / *.p7c) Beginnen immer mit "-----BEGIN PKCS7-----" im Text
-PKCS7 (*.p7b / *.p7c) Enthalten NIE einen Private Key
-PKCS7 (*.p7b / *.p7c) Kann das Zertifikat und die Chain enthalten

-PKCS12 (*.pfx / *.p12) Sind im Binärformat, kann nicht mit einem Texteditor angeschaut werden
-PKCS12 (*.pfx / *.p12) Kann das Zertifikat, die Chain und den Private Key enthalten

-PEM (*.pem / *.crt / *.cer / *.key) Beginnen immer mit "-----BEGIN CERTIFICATE------" im Text
-PEM (*.pem / *.crt / *.cer / *.key) Kann das Zertifikat, die Chain und den Private Key enthalten

-DER (*.cer / *.der) Sind im Binärformat, kann nicht mit einem Texteditor angeschaut werden
-DER (*.cer / *.der) Kann das Zertifikat, die Chain und den Private Key enthalten




Beispiel: Ein *.pfx  file aus einem *.key und *.crt generieren


1: CygWin installieren (https://cygwin.com/install.html) (Einfach weiter, OpenSSL ist standardmässig dabei) oder eine OpenSSL Binarie von hier: https://wiki.openssl.org/index.php/Binaries benutzen

2: Einfachheitshalber die beiden Files in den Installationsordner kopieren
(C:\cygwin64\home\%username%)

3: im Cygwin Terminal folgenden Befehl eingeben:


openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt

Danach zwei mal einen Private Key Passwort eingeben


Beispiel 2: Ein *.p12  file aus einem *.key und *.crt generieren

openssl pkcs12 -export -out domain.name.p12 -inkey domain.name.key -in domain.name.crt



WEITERE OPENSSL COMMAND-SWITCHE
-name IrgendEinName
-CAfile domain-chain.pem
-caname CACertName
-password pass:AAAAA


WEITERE OPEN SSL BEISPIELE:

OpenSSL Convert PEM
———————————————————————————————————
Convert PEM to DER

openssl x509 -outform der -in certificate.pem -out certificate.der

Convert PEM to P7B

openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer

Convert PEM to PFX

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt


OpenSSL Convert DER
———————————————————————————————————
Convert DER to PEM

openssl x509 -inform der -in certificate.cer -out certificate.pem

OpenSSL Convert P7B
———————————————————————————————————
Convert P7B to PEM

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

Convert P7B to PFX

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer

OpenSSL Convert PFX
———————————————————————————————————
Convert PFX to PEM

openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes

Anmerkung: Bei der kovertierung wird alles in eine Datei konvertiert. Öffnet die *.cer Datei in einem Editor und per Copy Paste kann das Certifikat, CACert und der PrivateKey in eine eignene Datei gespeichert werden (certificate.cer / CACert.cer / privateKey.key)

 ----------------------------------

Anmerkung ABACUS:
openssl pkcs12 -in .\certificate.pfx -nocerts -out .\abasioux.key -nodes
openssl pkcs12 -in .\certificate.pfx -nokeys -out .\abasioux.crt

Dienstag, 19. September 2017

[EXCHANGE][SSL][IIS] Mit Lets Encrypt ein Gratis SSL Zertifikat für Exchange Server installieren


WICHTIG:
-Der Server muss mit HTTP (Port 80) erreichbar sein
-Die DNS Namen müssen auf den Server zeigen und öffentlich zugänglich sein


Update:
Neues Tool

https://certifytheweb.com

1: Im IIS Manager, bestehende Namen anschauen (Bindungen):

z.B:
mail.contoso.com
autodiscover.contoso.com


Wichtig: Falls nicht vorhanden, die Bindungen erstellen, sonnst kann es nicht automatisch erneuert werden!

Neues Zertifikat erstellen:

IIS Site auswählen und die Domänen-Namen prüfen

Unter Advanced ggf. den wwwroot anpassen

Das Zertifikat mit Request Certificate anfordern


Sofern alles OK, die Bindungen in IIS überprüfen


Configure Auto Renew einrichten

Fertig

Zur Info: Das PFX Zertifikat wird im folgenden Ordner gepseichert:
C:\ProgramData\ACMESharp\sysVault\99-ASSET



Freitag, 12. August 2016

[OUTLOOK][EXCHANGE][SSL][IIS] SSL Zertifikat wurde von einer Firma ausgestellt die als nicht vertrauenswürdig eingestuft

Zertifikat anzeigen -> Zertifikat installieren

Alle Zertifikate in folgendem Speicher speichern:
Vertrauenswürdige Stammzertifizierungsstellen

OK -> Ja -> OK

Donnerstag, 11. August 2016

[EXCHANGE][SERVER][SSL][IIS] Eigenes SSL Zertifikat richtig generieren (mehrere CN Namen)

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


1: https://decoder.link/csr_generator

Einen CSR Generieren:
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!



Den CSR in eine neue Datei "domain.csr" kopieren
Den PRIVATE KEY in eine neue Datei "domain.key" kopieren
Das CERTIFICATE in eine neue Datei "domain.crt" kopieren


Danach mit dem Befehl eine .pfx erstellen (für z.B. IIS):
openssl.exe pkcs12 -export -out domain.pfx -inkey domain.key -in domain.crt

ALTERNATIV:
Nur den CSR speichern. Einen eigenen PK genereieren: openssl genrsa -out domain.key 4096

Dann das Zertifikat generieren:
openssl x509 -signkey domain.key -in domain.csr -req -days 3650 -out domain.crt

und dann das .pfx
openssl.exe pkcs12 -export -out domain.pfx -inkey domain.key -in domain.crt




--------------------------------------------------------------------------------------------------
Alte Anleitung:

1.    SelfSSL herrunterladen:
Googlen nach *Internet Information Services (IIS) 6.0 Resource Kit Tools*

2.    Custom install wählen und häcken nur bei SelfSSL setzen

3.    In Notepad.exe folgenden Befehl eingeben:
SelfSSL /N:CN=server01,CN=remote.blogger.com,CN=autodiscover.blogger.com,CN=mail.blogger.com,CN=blogger.dyndns.tv,CN=server01.blogger.local,CN=sites /V:1825

Server01             =     Servername von Kunde
server01.blogger.local    =    fully qualified domain name
remote.blogger.com        =     remote.domainname.domainendung
autodiscover.blogger.com    =    autodiscover.domainname.domainendung
mail.blogger.com        =    mail.domainname.domainendung
blogger.dyndns.tv        =    dyndns-name auf http://dyn.com/dns/ nachschauen
                     (evtl. nicht vorhanden)
sites                =    eintragen wegen allfälliger Fehlermeldung bei Client
1825                =    5 Jahre gültig (max.)

4.    Datei auf Desktop von Server speichern unter ssl.txt
5.    Befehl mit rechter Maustaste kopieren und in SelfSSL einfügen.
6.    Mit y bestätigen
7.    Internetinformationsdienste-Manager öffnen und Punkt SBS Web Applications anwählen:
8.    Rechts oben auf Bindungen klicken:
9.    Bearbeiten anklicken und passendes SSL Zertifikat auswählen:
(Bei mehreren SSL-Zertifikaten auf Anzeigen klicken und Zertifikat wählen welches in 5 Jahren ablauft.)
10.    SBS Web Applications neu starten: (rechtsklick)