Seit letsencrypt gegründet wurde, ist es jedermann möglich kostenlose SSL Zertifikate mit unterschiedlichen Methoden zu erstellen.
Die gängigsten werden hier vorgestellt.
Continue reading LetsencryptSeit letsencrypt gegründet wurde, ist es jedermann möglich kostenlose SSL Zertifikate mit unterschiedlichen Methoden zu erstellen.
Die gängigsten werden hier vorgestellt.
Continue reading LetsencryptBei vielen konfigurierten virtual hosts (vhosts) kann man irgendwann die Übersicht verlieren vie viele Zertifikate und – im Fall von SAN Zertifikaten – wie viele Domains dort konfiguriert sind.
Das folgende Script erledigt diese Aufgabe für nginx, kann jedoch auch einfach für apache umgeschrieben werden.
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
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
Diese Kommandos dienen zum erstellen von CSRs, Zetifikaten, PrivateKeys und anderen verschiedenen Dingen.
openssl genrsa -out example.com.key 4096
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt
openssl req -out CSR.csr -key privateKey.key -new
Siehe dazu auch: SSL CSR erstellen für weitere Optionen, wie z.B: ein CSR für ein SAN Zertifikat.
Hat man keinen CSR zum ursprünglich angelegten Zertifikat mehr, lässt sich das einfach aus dem bisherigen Zertifikat und Key erstellen:
openssl x509 -x509toreq -in certificate.crt -signkey privateKey.key -out $CSR.csr
openssl rsa -in privateKey.pem -out newPrivateKey.pem
openssl req -new -newkey rsa:4096 -nodes -keyout www.example.com.key -out www.example.com.csr -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com"
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout www.example.com.key -out www.example.com.crt
Zertifikate, CSRs oder PrivateKeys überpüfen:
openssl req -text -noout -verify -in CSR.csr
openssl rsa -in privateKey.key -check
openssl x509 -in certificate.crt -text -noout
openssl x509 -enddate -noout -in certificate.crt
openssl x509 -subject -noout -in certificate.crt
openssl pkcs12 -info -in keyStore.p12
Falls man einen Fehler bekommt wie: „private doesn’t match the certificate“ oder einem installierten Zertifikat wird nicht vertraut, dann kann man das mit diesem Kommandos herausfinden.
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
(alle md5-summen müssen gleich sein)
openssl s_client -connect www.paypal.com:443 Hinweis: Bei der Verwendung von name based virtualhosts mittels SNI muss zusätzlich noch der Parameter -servername angefügt werden: openssl s_client -servername www.paypal.com -connect www.paypal.com:443
Mit den folgenden Kommandos kann man Zertifikate und Schlüssel in andere Format konvertieren um diese mit spezifischen Server- und Software- typen kompatibel zu machen.
z.B. eine normale PEM Datei, welche mit apache funktionieren würde in eine PFX (PKCS#12) Datei umwandeln und mit Tomcat oder IIS zu benutzen.
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: SSLShopper: The Most Common OpenSSL Commands
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
Wenn man in bash aliase anlegt kannt man die, doch recht schwierig zu merkenden Kommandos abkürzen:
alias csrview='openssl req -text -noout -verify -in'
alias crtview='openssl x509 -text -noout -in'
alias sslkeygen='openssl genrsa 4096 -out'