PHP: Keine SSL-Verbindungen mehr ab 5.6

Nach einem Upgrade auf PHP 5.6 funktionieren auf einmal diverse Web-Applikationen, hauptsächlich Webmail Clients wie roundcubemail nicht mehr. Eine Fehlermeldung im PHP log gibt es nicht, ebenso wenig wie im Rückgabecode des Funktionsaufrufs. Das aufbauen der Verbindung schlägt einfach fehl.
Continue reading PHP: Keine SSL-Verbindungen mehr ab 5.6

postfix/dovecot: SSL intermediate/certificate chain

Bei vielen SSL Zertifikats-Anbietern, wie z.B: StartSSL muss man noch die intermediate Zertifikate, bzw. die certificate chain angeben, damit das Zertifikat als gültig anerkannt wird.
Dies ist vor allem wichtig, da ab PHP 5.6 sämtliche SSL-Verbindungen ohne gültiges Zertifikat abgelehnt werden.

Continue reading postfix/dovecot: SSL intermediate/certificate chain

Gebräuchliche OpenSSL Befehle

Allgmeine OpenSSL Befehle

These commands allow you to generate CSRs, Certificates, Private Keys and do other miscellaneous tasks.

openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privateKey.key
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt
openssl req -out CSR.csr -key privateKey.key -new
openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey privateKey.key
openssl rsa -in privateKey.pem -out newPrivateKey.pem

Checking Using OpenSSL

If you need to check the information within a Certificate, CSR or Private Key, use these commands. You can also check CSRs and check certificates using our online tools.

openssl req -text -noout -verify -in CSR.csr
openssl rsa -in privateKey.key -check
openssl x509 -in certificate.crt -text -noout
openssl pkcs12 -info -in keyStore.p12

Debugging Using OpenSSL

If you are receiving an error that the private doesn’t match the certificate or that a certificate that you installed to a site is not trusted, try one of these commands. If you are trying to verify that an SSL certificate is installed correctly, be sure to check out the SSL Checker.

openssl x509 -noout -modulus -in certificate.crt | openssl md5
openssl rsa -noout -modulus -in privateKey.key | openssl md5
openssl req -noout -modulus -in CSR.csr | openssl md5
openssl s_client -connect www.paypal.com:443

Converting Using OpenSSL

These commands allow you to convert certificates and keys to different formats to make them compatible with specific types of servers or software. For example, you can convert a normal PEM file that would work with Apache to a PFX (PKCS#12) file and use it with Tomcat or IIS. Use our SSL Converter to convert certificates without messing with OpenSSL.

openssl x509 -inform der -in certificate.cer -out certificate.pem
openssl x509 -outform der -in certificate.pem -out certificate.der
openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes

You can add -nocerts to only output the private key or add -nokeys to only output the certificates.

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

Quelle: [http://www.sslshopper.com/article-most-common-openssl-commands.html|SSLShopper: The Most Common OpenSSL Commands]

CA erstellen und mit dieser ein Zertifikat erstellen

Mit den nachfolgenden Befehlen kann man schnell eine CA erstellen udn damit ein Zertifikat signieren:

# Key erstellen
openssl genrsa -out ca.key 2048
# Root-CA Zertifikat mit diesem key erstellen
openssl req -x509 -new -nodes -key ca.key -sha256 -days 1024 -out ca.crt
 
## Zertifikat für domain: "example.org" erstellen
# Key für cert erstellen:
openssl genrsa -out example.org.key 2048
# CSR mit diesem key erstellen
openssl req -new -key example.org.key -out example.org.csr
# Zertifikat erstellen und mit der Root-CA signieren:
openssl x509 -req -in example.org.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out example.org.crt -days 500 -sha256