SSL Zertifikat beantragen


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.