Preiswertes SSL Zertifikat beschaffen und in den Apache2 Webserver einbinden

Seit wir mit FTTH (fiber to the home) einen Glasfaseranschluss im Haus haben, betreibe ich eine eigene Cloud und hoste meine Website selber. Das klappt wunderbar mit meinem Linux-Server im Keller. Die Cloud und auch die Anmeldung zu meiner Website sollte per SSL verschlüsselt erreichbar sein. Dies hatte ich bisher mit einem selbst signierten Zertifikat gelöst. Ein Verfahren, welches technisch einwandfrei funktioniert. Leider erzeugt dies aber ungewollte Zertifikatswarnungen in allen Browsern.

Hinweis zum Artikel: Der Artikel ist nach wie vor aktuell und funktioniert, aber mit Let’s Encrypt gibt es mittlerweile eine kostenlose Variante für SSL Zertifikate.

Ich stelle meinen Lehrgangsteilnehmern Dateien wie mein Script und/oder Hausaufgaben und Arbeitsaufträge digital zur Verfügung. Das war bisher dann eben auch mit der unschönen Meldung verbunden, sodass einige Teilnehmer Angst hatten die Dateien herunterzuladen. Ein signiertes Zertifikat kostet jedoch schnell mehrere hundert Euro. Das ist für ein Kleinstunternehmen oder einen Privatanwender nicht wirtschaftlich. Problematisch ist zudem, dass man zu seiner Domain meist (zur Validierung der Zugriffsberechtigung) auch einen funktionierenden Mail-Server betreiben muss. Durch Zufall bin ich auf die PSW Group aufmerksam geworden, die mit Ihrem Produkt Comodo lite (PositiveSSL) ein einfaches, aber vertrauenswürdiges SSL Zertifikat anbietet, das genau an dieser Stelle ansetzt. Die Validierung der Domain funktioniert über ein Hash-Verfahren, sodass kein Mailserver betrieben werden muss. Die Kosten sind gestaffelt. Ab 0 EUR gehts mit einem Zertifikat für einen Monat (z.B. zum Probieren) los. Mit 39 EUR ist man für drei Jahre absolut preisgünstig dabei. Es geht zu diesem Preis immer nur eine Domain plus eine zugehörige Subdomain, also z.B. www.euredomain.de und euredomain.de. Jetzt zeige ich euch, wie einfach un schnell das geht. Ich habe ca. 30 Minuten gebraucht um das ans Laufen zu bekommen.

Vorbereitungen auf der Linux-Shell

    1. Schritt: Erzeugt einen privaten Schlüssel für euren Webserver. Habt ihr schon einen privaten Schlüssel erzeugt, könnt ihr mit Schritt 2 weiter machen. Diesen sichert ihr nicht mit einer Passphrase, sonst müsst ihr bei jedem Neustart des Webservers ein Passwort eingeben oder dieses im Klartext in der Konfigurationsdatei ablegen.
      sudo openssl genrsa -out /etc/ssl/private/apache.key 2048
    2. Schritt: Ihr müsst nun einen Zertifikatsrequest erzeugen.
      sudo openssl req -new -key /etc/ssl/private/apache.key -out wwweuredomainde.csr

      Die Ausgabe des Befehls sieht aus wie im Beispiel. Wichtig ist, dass ihr exakt die Domain im Feld Common Name angebt für die das Zertifikat ausgestellt werden soll:

      sudo openssl req -new -key /etc/ssl/private/apache.key -out wwweuredomainde.csr
      [sudo] password for admin: 
      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]:DE
      State or Province Name (full name) [Some-State]:NRW
      Locality Name (eg, city) []:Musterstadt
      Organization Name (eg, company) [Internet Widgits Pty Ltd]:Firmennameoderleer
      Organizational Unit Name (eg, section) []:
      Common Name (e.g. server FQDN or YOUR name) []:www.euredomain.de           
      Email Address []:euremail@mail.de  
      
      Please enter the following 'extra' attributes
      to be sent with your certificate request
      A challenge password []:wkjdbc2832bec
      An optional company name []:Firmennameoderleer
      

Die erzeugte Datei can man sich nun ansehen und den Inhalt in die Zwischenablage einfügen.

cat wwweuredomainde.csr
-----BEGIN CERTIFICATE REQUEST-----
MIIDEjCCAfoCAQAwgYsxCzAJBgNVBAYTAkRFMQwwCgYDVQQIDANOUlcxFDASBgNV
BAcMC011c3RlcnN0YWR0MRswGQYDVQQKDBJGaXJtZW5uYW1lb2RlcmxlZXIxGjAY
BgNVBAMMEXd3dy5ldXJlZG9tYWluLmRlMR8wHQYJKoZIhvcNAQkBFhBldXJlbWFp
bEBtYWlsLmRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApbQ92Gk4
uOPTUwEFjIcwbyLZWOYULEjqVFk7w+5Szfr0U0pBF/VA0jr6DX7f89endPXdkc0/
odHN+RSXQ9bqrTs1EvimoK/eyQ0NVhSeq/stUchD461wTZJaTwb9oeHrh7dnI0o1
2SXW56c6iiTXV8RTlO6HwCcp841eC/E1ts6tpA6wqeAas3dy7mIGlZdSo9lN5wQZ
apIbz7rDcbzYkrPX63dTO3c4gms0ITcD0TUIiHyRYrchS/IhN0UXf3g9gLyDBkOh
aevcdPlVbjHEct3G0ITEsPdaUbotyw7EtiSyBrVLzvjRrUjjVDLIYKD8P/jWX3hk
v8pbmxIjNgvqUwIDAQABoEEwHAYJKoZIhvcNAQkHMQ8MDXdramRiYzI4MzJiZWMw
IQYJKoZIhvcNAQkCMRQMEkZpcm1lbm5hbWVvZGVybGVlcjANBgkqhkiG9w0BAQsF
AAOCAQEACJax9B0QiCNEVbAS9tsauns40E6leKQF4P3csNCM8qaMM9i93jik3Uj0
eY/sKu/hwWxY4FtIRLPIoBX5WJ9K3ds97/HgoiKXCG6ev3+z12bKMNX3jYd39RFq
wg1qn0CzCWpfw7Z+YDb2CU++PEOAJYSvfnXP20dcyhTPE0eTTOkkdCUrGD7jeRsI
E2HTiIp4qBgNlq6dEiHYiBzhN98LHr3/FtrXkf4sle9mRFpgDMuv9r/1kECSCCRj
6Ig97sZE+JPoVn8T/r6uW4/YlM6zNLK2Il24H391QcC6kVWchWKXlODWjHwVPw4q
dc6EreexX1CE2E24NORkaiDC7hI3EA==
-----END CERTIFICATE REQUEST-----

Das war’s zunächst auf der Shell. Ob der Certificate Request gelungen ist könnt ihr auf dieser Seite testen.

Bestellung des Zertifikates auslösen

Nun müsst ihr den Bestellvorgang bei der PSW Group auslösen. Das ist sehr einfach und funktioniert per Rechnung. Ich habe aber trotzdem ein paar Screenshots gemacht, damit ihr euch besser zurecht findet. Zunächst zum Menüpunkt SSL-Einzelzertifikate navigieren und bestellen beim Produkt Comodo Lite (PositiveSSL) auswählen.

Ein Screenshot eines Webshops

Screenshot Bestellung Einzelzertifikat

Anschließend die in der Zwischenablage befindliche Daten des CSR in das nächste Fenster eingeben.

Screenshot mit Anmerkungen zur Eingabe, damit man sehen kann welche Inhalte wohin gehören.

Screenshot mit Anmerkungen zur Eingabe

Nun folgen einige Seiten, in denen ihr eure persönlichen Daten, die Daten des Admins und die Daten des Rechnungsempfängers eingeben müsst. Praktischerweise kann man die Daten übernehmen, wenn alle drei Rollen zur selben Person gehören. Ganz am Schluss müsst ihr noch eine Kopie eures Ausweises hochladen und dann kommen die wichtigsten Einstellungen zur Validierung:

Screenshot zur Domainvalidierung, zeigt die Einstellungen zur Validierung.

Screenshot zur Domainvalidierung

Verfügt ihr über einen funktionierenden Mailserver auf eurer Domain, könnt ihr die Validierung per Mail machen. Es werden euch ca. 10 verschiedene Adressen wie z.B. admin@euredomain.de für eure Domain angeboten. Verfügt ihr – wie ich – nicht über einen funktionierenden Mailserver auf der Domain ist die HTTP-Hash-Validierung perfekt. Hierbei wird eine Datei mit einem Hashwert im Wurzelverzeichnis des Webservers abgelegt. Die Anleitung dazu kommt per Email vom Anbieter. Bei mir hat es nur etwa fünf Minuten gedauert, dann hatte ich die Anleitung in meinem Postfach. Weitere 10 Minuten später und befolgen der Anleitung hatte ich die Zertifikate und konnte diese in die Apache2 Konfigurationsdatei einbinden.

Einbindung der Zertifikate

Die Zertifikate werden per Mail in einem ZIP-Archiv geliefert. Ich habe die Inhalte aus dem Ordner Linux aus dem ZIP-Archiv in den Ordner

/etc/ssl/certs/

auf meinem Server kopiert und diese dann sinnvoll umbenannt in

euredomainde.crt

bzw.

euredomainde.ca-bundle
Ausgelieferte Zertifikate zur Einbindung in den Webserver.

Ausgelieferte Zertifikate zur Einbindung in den Webserver

Die Einrichtung in der Apache Konfiguration ist nun fix erledigt. Ihr öffnet die Webserver-SSL-Konfigurationsdatei und tragt in der entsprechenden VirtualHost-Umgebung die folgenden Zeilen mit den Pfaden zu euren Zertifikaten ein. Natürlich müsst ihr bereits bestehende, selbstsignierte Zertifikate auskommentieren:

sudo nano /etc/apache2/sites-enabled/default-ssl.conf
VirtualHost www.euredomain.de:443
.
.
.
SSLCertificateKeyFile /etc/ssl/private/apache.key
SSLCertificateFile /etc/ssl/certs/euredomainde.crt
SSLCertificateChainFile /etc/ssl/certs/euredomainde.ca-bundle
.
.
.
/VirtualHost

Nachdem ihr den Apache2-Dienst mit

sudo service apache2 restart

neu gestartet habt läuft eure Website mit einem validen SSL-Zertifikat und erzeugt keine Fehlermeldungen mehr im Browser von Freuden oder Kunden. Viel Spass beim ausprobieren.

Leave A Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.