7.4.16

zPanel mit SSL - Part 2

Nach der Installation mehrerer Zertifikate von letsencrypt hatte ich zunächst mit "Override a Virtual Host Setting" diese eingefügt.
Das klappte aber nur bedingt. Trotz nahezu identischer Einstellungen konnte man  manchmal per https zugreifen und gleichzeitig per http, aber manchmal komischerweise nicht.
Außerdem wurde bei manchen Domains das CSS nicht mehr richtig angezeigt.

Hier nun eine (wie immer geklaute) Anleitung, mit der es klappen soll.

Meine Zertifikate für jede Domain liegen in

/etc/letsencrypt/live/[DOMAIN]

Dort relevant fullchain.pem und privkey.pem.


Damit das Ganze mehr oder weniger automatisiert abläuft, habe ich mir eine SSL-Vorlage erstellt:


# DOMAIN: NEWDOMAIN
<virtualhost *:443>
ServerName NEWDOMAIN
ServerAlias NEWDOMAIN www.NEWDOMAIN
ServerAdmin admin@localhost.de
DocumentRoot "/var/zpanel/hostdata/zadmin/public_html/NEWPATH"
php_admin_value open_basedir "/var/zpanel/hostdata/zadmin/public_html/NEWPATH:/var/zpanel/temp/"
php_admin_value suhosin.executor.func.blacklist "passthru, show_source, shell_exec, system, pcntl_exec, popen, pclose, proc_open, proc_nice, proc_terminate, proc_get_status, proc_close, leak, apache_child_terminate, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, escapeshellcmd, escapeshellarg, exec"
ErrorLog "/var/zpanel/logs/domains/zadmin/NEWDOMAIN-error.log"
CustomLog "/var/zpanel/logs/domains/zadmin/NEWDOMAIN-access.log" combined
CustomLog "/var/zpanel/logs/domains/zadmin/NEWDOMAIN-bandwidth.log" common
<Directory />
Options FollowSymLinks Indexes
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
AddType application/x-httpd-php .php3 .php
ScriptAlias /cgi-bin/ "/_cgi-bin/"
<location /cgi-bin>
AddHandler cgi-script .cgi .pl
Options ExecCGI -Indexes
</location>
DirectoryIndex index.html index.htm index.php index.asp index.aspx index.jsp index.jspa index.shtml index.shtm
# Custom Global Settings (if any exist)
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/NEWDOMAIN/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/NEWDOMAIN/privkey.pem

# Custom VH settings (if any exist)

</virtualhost>
# END DOMAIN: NEWDOMAIN



Dann habe ich  ein Verzeichnis
/etc/zpanel/configs/apache/ssl_enabled 
erstellt, in dem dann die SSL-Konfigurationen hineinkopiert werden sollen.

Damit diese includiert werden einfach in die

/etc/zpanel/configs/apache/http.conf 

folgende Zeile einfügen:

 # Custom SSL Apache config
Include /etc/zpanel/configs/apache/ssl_enabled

Das nachfolgende Script (create-ssl-domain.sh) erwartet als ersten Parameter die Domain, für die ein SSL-Eintrag eingerichtet werden soll:

#!/bin/bash

CONFIGPATH=/etc/zpanel/configs/apache/ssl_enabled
VORLAGE=/etc/zpanel/configs/apache/VORLAGE
domainstring="s/NEWDOMAIN/$1/g"
replacepath=`echo $1 | sed 's/\./_/g'`
pathstring="s/NEWPATH/$replacepath/g"

if [ ! "$1" ]; then
echo "Fehler! Domain übergeben!"
    exit 0
fi

echo "Bereite SSL für Domain " $1 "vor"
sed -e $domainstring -e $pathstring $VORLAGE > $CONFIGPATH/$1.conf

Ausführbar machen, dann ausführen mit

create-ssl-domain.sh [DOMAIN]

und schwups, eine neue Konfiguration ist angelegt und wenn die entsprechenden Zertifikate vorhanden sind, meckert der Apache bei einem

service apache2 restart

auch nicht!



6.4.16

SSL mit Postfix

Das Postfixbuch ist das Mittel der Wahl bei der Installation von Postfix.
Auf Seite 595 ff. der 3. Auflage ist auch beschrieben, wie man Zertifikate erstellt.
Leider hat sich dabei ein kleiner Fehler eingeschlichen, der natürlich in einer neueren Version wieder ausgebügelt sein wird (nicht Peer? ;)).

Also zum Mitschreiben.....

Neues CA erstellen (Pfad stammt aus einer Ubuntu Installation)

/usr/lib/ssl/misc/CA.pl -newca

Request erstellen

/usr/lib/ssl/misc/CA.pl -newreq
(Passwort des Root CA angeben)

Wichtig

Common Name (e.g. server FQDN or YOUR name) []:

Hier muss der FQDN des Mailservers stehen, z.B. mx1.example.com

Dann das Client Zertifikat signieren mit

/usr/lib/ssl/misc/CA.pl -sign

Nun muss man noch das Passwort des neuen Zertifikates entfernen, damit Postfix ohne Rückfrage starten kann.
Hier fehlen im Postfixbuch die Anweisungen -in und -out.

openssl rsa -in newkey.pem -out key.pem

Damit nicht jeder lesen kann, die Rechte mit

chmod 400 *.pem

setzen. Auch im Verzeichnis demoCA (falls angelegt) und demoCA/private.

In Postfix braucht es nur eine Anweisung und drei Pfade:

smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_cert_file = /etc/postfix/cert.pem
smtpd_tls_key_file = /etc/postfix/ssl/key.pem
smtpd_use_tls = yes

Wenn Dovecot installiert ist, kann man die gleichen Zertifikate zum Abruf der Emails verwenden.

Datei:
/etc/dovecot/conf.d/10-ssl.conf

## Meine Zertifikate
ssl_cert = </etc/postfix/cert.pem
ssl_key = </etc/postfix/key.pem


SSL aktivierern dort mit

ssl = yes (oder required)
Protokoll ergänzen in der dovecot.conf

protocols = imap pop3 lmtp sieve imaps


Verbindung testen:

openssl s_client -starttls smtp -crlf -connect localhost:25


5.4.16

Über Konsole mit TLS auf Mailserver einloggen

Einloggen mit TLS

openssl s_client -host mail.irgend.wo -port 25 -starttls smtp

ehlo test

AUTH PLAIN [Benutzer|Passwort - base64]



Username&Passwort base64 codieren


 echo -ne "\0mail@test.de\0password"|base64


Zertifikat auf dem Server überprüfen

  apt-get install gnutls-bin
gnutls-cli -s -p smtp mail.picoda.de
Dann ctrl-D drücken....


Oder so:
openssl x509 -noout -in [PFAD ZUM ZERTIFIKAT] -subject -issuer -dates

Openhab und Ecoflow Max - API Anbindung

 Ich wollte die neu erworbene Powerstation in Openhab einbinden, um den aktuellen Status (Ladestand etc.) über Openhab auswerten zu können. ...