Wie beantragt man ein offizielles SSL Zertifikat ?
Dazu benötigen wir eine Zertifizierungsstelle, zur Generierung die Software „openssl“ und einen Domainnamen.
Im Zuge der Erstellung werden mehrfach Passwörter abgefragt. Der Einfachheit halber nutze ich immer dasselbe Passwort.
openssl genrsa -des3 -out new.key 2048 openssl req -new -key new.key -out new.csr
Bei den folgenden Abfragen jeweils eure Namen, etc. angeben.
Enter pass phrase for new.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DEINLAND
State or Province Name (full name) [Some-State]:DEINBUNDESLAND
Locality Name (eg, city) []:DEINORT
Organization Name (eg, company) [Internet Widgits Pty Ltd]:DEINFIRMENNAME
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:DEINEDOMAIN
Email Address []: DEINEEMAILADDRESSE
Please enter the following ‚extra‘ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Den Inhalt der Datei „new.csr“ gibt man dann an die Zertifizierungsstelle und erhält nach einiger Zeit seinen öffentlichen Schlüssel.
Diesen Schlüssel speichern wir in einen neuen Datei „new.crt“.
Zuletzt benötigen wir den Schlüssel der generierenden Stelle, in meinem Fall von Thawte.
Dieses File speichern wir ebenfalls ab.
Wir haben nun alle Dateien, um z.B. Apache und Dovecot mit unserem Zertifikat zu versorgen.
Wenn wir z.B. Tomcat oder Jetty mit SSL nutzen wollen, müssen wir diese X509 Zertifikate jedoch in ein PKCS12 Zertifikat umwandeln.
Dies geht folgendermaßen:
openssl pkcs12 -export -out tomcat.key -inkey new.key -in new.crt -certfile SSL123_CA_Bundle.pem
Wir haben jetzt folgende Keys
Der private key : new.key (nicht weitergeben) Den Zertifikatsrequest : new.crs (nicht weitergeben, benötigen wir für eine Verlängerung) Die Antwort darauf : new.crt Den Key von Thawte : SSL123_CA_Bundle.pem Den Key für Tomcat, Jetty oder IIS : tomcat.key
Einbinden dieser Dateien in folgende Server:
Apache Webserver
SSLEngine on SSLCertificateFile /pfad/zu/new.crt SSLCertificateKeyFile /pfad/zu/new.key SSLCertificateChainFile /pfad/zu/SSL123_CA_Bundle.pem
Dovecot
protocols = imaps disable_plaintext_auth = yes ssl_ca_file = /pfad/zu/SSL123_CA_Bundle.pem ssl_cert_file = /pfad/zu/new.crt ssl_key_file = /pfad/zu/new.key
Tomcat
Beim Tomcat muss der entsprechende Connector angepasst werden. In meinem Fall lasse ich Tomcat nur über SSL kommunizieren.
Der Tomcat kann direkt X509 Zertifikate lesen. Eine andere Möglichkeit wäre ein Java Keystore, in den das X509 Zertifikat imprortiert werden müsste.