OpenSSL ist eine freie Implementierung von SSL und TLS.
Homepage: http://www.openssl.org/
Die Lizenz von OpenSSL ist nicht GPL und auch trotz Namensähnlichkeit nicht die von OpenBSD, sondern stattdessen eine Apache-ähnliche Lizenz. Es ist daher umstritten, ob OpenSSL legal mit GPL-lizenzierten Programmen verwendet und vertrieben werden kann oder nicht. Prominenter Vertreter einer generellen Ablehnung der Kombination von OpenSSL und GPL-Programmen ist die Debian-Distribution, die stattdessen die Verwendung von GnuTLS empfiehlt. Mehr dazu siehe in der englischen Wikipedia und in einem Artikel von Mark McLoughlin.
Tipps & Tricks
Hier eine kleines Shell Script wie man auch ohne Browser die Informationen eines SSL Zertifikats erhält:
domain=linuxwiki.org echo "GET /" | openssl s_client -connect ${domain}:443 2>/dev/null | \ awk '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/{ print }' | \ openssl x509 -text -noout
Liste von interessanten Links
Eigener Schlüsseldienst - VPNs und Zertifikate im Eigenbau; Heise C't (2002)
Open Source PKI {en} - Wie man eine OpenSource Public-Key Infrastrutur aufbaut
Mini-HowTos
Server-Zertifikat generieren
Es gibt zwar viele Hits bei einer google-Suche, jedoch sind die Ergebnisse mal besser und mal schlechter. Deshalb hier ein geradliniges HowTo ohne viel Patchwork:
- Zertifikat und privaten Schlüssel erzeugen:
Unter debian sollte man das in /etc/ssl ausführen: openssl req -new -x509 -newkey rsa:2048 -days 3650 -keyout private/www.pem -out www.pem Das Passwort ist beliebig. Als Common Name (eg, YOUR name) [] gibt man z.B. www.example.com ein.
- Passwortschutz wegnehmen.
openssl rsa -in private/www.pem -out private/www.pem
Jetzt hat man ein Zertifikat (www.pem) und einen passenden Schlüssel ohne Passwortschutz private/www.pem, die sich u.a. leicht in Apache oder jabberd2 einbinden lassen.
Falls eine Anwendung das Zertifikat und den Schlüssel in einer Datei braucht, kann man diese einfach zusammenfügen: cat www.pem private/www.pem > www-package.pem