kathaki
Goto Top

Apache2 SSL Zertifikat installieren

Hallo zusammen,

ich mache meine ersten Schritte mit Linux (Ubuntu 16.04.4 TLS) und möchte dem Apache2 Server ein SSL Zertifikat beifügen. Momentan bleibt es leider beim "möchte"

Erstmal eine Zusammenfassung:

Ich habe ein VPS bei Strato mit dem namen HXYZ1234.strato.net und der IP 123.123.123.123
Ich habe eine Domain bei checkdomain mit abc.com <- von hier habe ich auch bereits ein SSL Zertifikat als "pem.crt, private.key, pem.ca-bundle"

Inzwischen habe ich solange rumprobiert bis ich apache2 nicht mehr starten konnte und rolle auf ein Backup von gestern abend zurück.
Habt ihr eine Anleitung für mich, wie ich mein vorhandenes Zertifikat einspielen kann? Google spuckt mir nur self-signed oder Anweisungen mit certbot(LetsEncrypt) aus. Letzeres scheint allerdings nicht mit Strato zu funktionieren.


Vielen lieben Dank für eure Mühe und falls ihr mehr Infos braucht, dann gebe ich sie gerne raus

Liebe Grüße
Aki

Content-ID: 374725

Url: https://administrator.de/contentid/374725

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

Voiper
Voiper 23.05.2018 aktualisiert um 11:21:59 Uhr
Goto Top
Moin,

Anleitungen gibt es weiß Gott mehr als genug. Das sind insgesamt vielleicht 10 Zeilen Konfiguration. Zeig uns doch mal deine Konfigdatei, damit wir die Fehler finden. Das hilft Dir mehr. Gerne kannst du auch deine "Lernquellen" posten.


Gruß, V
Kathaki
Kathaki 23.05.2018 um 11:35:29 Uhr
Goto Top
Meine Config ist dann mit dem Backup natürlich flöten gegangen... War glaube ich etwas zu voreilig.

Ich kann gerne mal rekonstrurieren, was ich gemacht habe(ungefähr):

- mkdir /etc/apache2/ssl
- dort die Files: pem.crt, private.key  reinkopiert

- a2enmod ssl

- sudo nano /etc/apache2/sites-enabled/000-default.conf
- dort eingefügt
<VirtualHost HXYZ1234.strato.net:443>
    ServerName HXYZ1234.strato.net
    DocumentRoot /var/www/

    <IfModule mod_ssl.c>
        SSLEngine on
        SSLCertificateKeyFile /etc/apache2/ssl/private.key
        SSLCertificateFile /etc/apache2/ssl/pem.crt
        SetEnvIf User-Agent ".*MSIE.*" \  
          nokeepalive ssl-unclean-shutdown \
          downgrade-1.0 force-response-1.0
    </IfModule>
</VirtualHost>

- Versucht Apache2 zu restarten

Zwischendurch habe ich sicher vor Unwissenheit und Blödheit noch andere Dinge getan und es am Ende gar nicht mehr hinbekommen
laster
laster 23.05.2018 um 11:35:47 Uhr
Goto Top
Kathaki
Kathaki 23.05.2018 um 11:46:20 Uhr
Goto Top
Danke für die Antwort laster, die Anleitung hatte ich auch schon gefunden.

Allerdings wird dort OpenSSL mit einem selbst erstellen Zertifikat verwendet. Das möchte ich nicht, da ich bereits ein Zertifikat für meine Domain besitze. Diese wird auch von Browsern als vertrauenswürdig anerkannt. Möchte daher gerne dieses benutzen
Voiper
Voiper 23.05.2018 um 11:51:40 Uhr
Goto Top
Zitat von @Kathaki:

Danke für die Antwort laster, die Anleitung hatte ich auch schon gefunden.

Allerdings wird dort OpenSSL mit einem selbst erstellen Zertifikat verwendet. Das möchte ich nicht, da ich bereits ein Zertifikat für meine Domain besitze. Diese wird auch von Browsern als vertrauenswürdig anerkannt. Möchte daher gerne dieses benutzen
Das ist doch der Apache2 Konfig vollkommen wurscht, wer das Zertifikat ausgestellt hat. Die Konfig ist doch die Selbe.
NetzwerkDude
Lösung NetzwerkDude 23.05.2018 aktualisiert um 12:04:04 Uhr
Goto Top
Die Apache Installation bringt das Programm apachectl mit:
apachectl configtest
testet die configfiles und sagt wo der fehler ist - sehr nützlich

Ansonsten zu deiner Config:
<VirtualHost *:443>
    ServerName HXYZ1234.strato.net
    DocumentRoot /var/www/
    SSLEngine on
    SSLCertificateKeyFile /etc/apache2/ssl/private.key
    SSLCertificateFile /etc/apache2/ssl/pem.crt
</VirtualHost>
sollte eigentlich ausreichen

Musst halt schauen das die Dateien in /etc/apache2/ssl lesbar sind für den Dientbenutzer unter dem Apache läuft (Bei Ubuntu 16.04 sollte es www-data sein)

Edit:
Wobei schau natürlich vorher rein in die .key und .crt Files rein, ob es wirklich NUR jeweils der public / private key ist face-smile

Edit2:
Lass den Quatsch mit den ExtraSetting für den IE weg, wer den IE in einer Uraltversion einsetzt, dem ist eh nicht mehr zu helfen!
Kathaki
Kathaki 23.05.2018 aktualisiert um 12:19:59 Uhr
Goto Top
Als Rückmeldung erhalte ich: Syntax OK


Habe noch eine Antwort mit error logs gepostet.

Vielen Dank für deine Antwort NetzwerkDude


Habe mich an die gepostete Anleitung gehalten und bekomme wieder

root@h2779675:/etc/apache2/ssl# systemctl status apache2
● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: inactive (dead) since Mi 2018-05-23 12:08:06 CEST; 1min 7s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 1146 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 1094 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS)
  Process: 1128 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)

Mai 23 12:08:03 h2XXXX.stratoserver.net apache2[1128]:  * Starting Apache httpd web server apache2
Mai 23 12:08:03 h2XXXX.stratoserver.net apache2[1128]: Action 'start' failed.  
Mai 23 12:08:03 h2XXXX.stratoserver.net apache2[1128]: The Apache error log may have more information.
Mai 23 12:08:03 h2XXXX.stratoserver.net apache2[1128]:  *
Mai 23 12:08:06 h2XXXX.stratoserver.net apache2[1146]:  * Stopping Apache httpd web server apache2
Mai 23 12:08:06 h2XXXX.stratoserver.net apache2[1146]:  *


Aus Apache error log

[Tue May 22 01:54:01.594871 2018] [mpm_prefork:notice] [pid 386] AH00163: Apache/2.4.18 (Ubuntu) configured -- resuming normal operations
[Tue May 22 01:54:01.594898 2018] [core:notice] [pid 386] AH00094: Command line: '/usr/sbin/apache2'  
[Wed May 23 11:32:36.569371 2018] [mpm_prefork:notice] [pid 346] AH00163: Apache/2.4.18 (Ubuntu) configured -- resuming normal operations
[Wed May 23 11:32:36.572915 2018] [core:notice] [pid 346] AH00094: Command line: '/usr/sbin/apache2'  
[Wed May 23 11:54:27.332480 2018] [mpm_prefork:notice] [pid 346] AH00169: caught SIGTERM, shutting down
[Wed May 23 11:54:28.404954 2018] [mpm_prefork:notice] [pid 969] AH00163: Apache/2.4.18 (Ubuntu) OpenSSL/1.0.2g configured -- resuming normal operations
[Wed May 23 11:54:28.405014 2018] [core:notice] [pid 969] AH00094: Command line: '/usr/sbin/apache2'  
[Wed May 23 11:56:30.828877 2018] [:error] [pid 973] [client 95.90.218.16:53336] PHP Fatal error:  Uncaught Error: Class 'OCP\\User' not found in /var/www/html/apps/files_rightclick/ajax/applications.php:3\nStack trace:\n#0 {main}\n  th$  
[Wed May 23 12:01:28.416644 2018] [:error] [pid 998] [client 95.90.218.16:53328] PHP Fatal error:  Uncaught Error: Class 'OCP\\User' not found in /var/www/html/apps/files_rightclick/ajax/applications.php:3\nStack trace:\n#0 {main}\n  th$  
[Wed May 23 12:07:56.070664 2018] [mpm_prefork:notice] [pid 969] AH00171: Graceful restart requested, doing restart
[Wed May 23 12:07:56.134927 2018] [ssl:emerg] [pid 969] AH02562: Failed to configure certificate h2779675.stratoserver.net:443:0 (with chain), check /etc/apache2/ssl/pem.crt
[Wed May 23 12:07:56.134954 2018] [ssl:emerg] [pid 969] SSL Library Error: error:0906D06C:PEM routines:PEM_read_bio:no start line (Expecting: TRUSTED CERTIFICATE) -- Bad file contents or format - or even just a forgotten SSLCertificateK$
[Wed May 23 12:07:56.134969 2018] [ssl:emerg] [pid 969] SSL Library Error: error:140DC009:SSL routines:SSL_CTX_use_certificate_chain_file:PEM lib
[Wed May 23 12:07:56.134975 2018] [:emerg] [pid 969] AH00020: Configuration Failed, exiting
[Wed May 23 12:08:03.933353 2018] [ssl:emerg] [pid 1144] AH02562: Failed to configure certificate h2779675.stratoserver.net:443:0 (with chain), check /etc/apache2/ssl/pem.crt
[Wed May 23 12:08:03.933424 2018] [ssl:emerg] [pid 1144] SSL Library Error: error:0906D06C:PEM routines:PEM_read_bio:no start line (Expecting: TRUSTED CERTIFICATE) -- Bad file contents or format - or even just a forgotten SSLCertificate$
[Wed May 23 12:08:03.933438 2018] [ssl:emerg] [pid 1144] SSL Library Error: error:140DC009:SSL routines:SSL_CTX_use_certificate_chain_file:PEM lib
AH00016: Configuration Failed
aqui
aqui 23.05.2018 um 12:15:02 Uhr
Goto Top
Voiper
Voiper 23.05.2018 um 12:34:47 Uhr
Goto Top
Hast du die korrekten Berechtigungen auf das Zertifikat gesetzt?
NetzwerkDude
NetzwerkDude 23.05.2018 aktualisiert um 15:21:29 Uhr
Goto Top
[Wed May 23 12:07:56.134927 2018] [ssl:emerg] [pid 969] AH02562: Failed to configure certificate [censored].stratoserver.net:443:0 (with chain), check /etc/apache2/ssl/pem.crt
[Wed May 23 12:07:56.134954 2018] [ssl:emerg] [pid 969] SSL Library Error: error:0906D06C:PEM routines:PEM_read_bio:no start line (Expecting: TRUSTED CERTIFICATE) -- Bad file contents or format - or even just a forgotten SSLCertificateK$

Schaut doch interessant aus - vor allem "[censored].stratoserver.net:443" - dachte deine URL ist "HXYZ1234.strato.net" ? Oder ist das erste der Intermediate vom Strato?
Kathaki
Kathaki 23.05.2018 um 13:51:10 Uhr
Goto Top
Oh :D Entschuldige, ich wollte die URL ungern öffentlich freigeben und habe sie mit HXYZ1234 abgeändert.. im geposteten Logfile habe ich die Stelle anscheinend übersehen.
Kannst also das XXYZ1234 mit h277... ersetzen. Das ist die richtige URL von strato
Kathaki
Kathaki 23.05.2018 um 14:39:49 Uhr
Goto Top
Das kann ich nicht garantieren. Wie kann ich das genau überprüfen?
NetzwerkDude
NetzwerkDude 23.05.2018 um 15:20:54 Uhr
Goto Top
https://wiki.ubuntuusers.de/Rechte/
und
https://wiki.ubuntuusers.de/ls/

öhm - falls du deinen server für nicht-geheime-tests benutzst ist es ja okay, aber ich wäre an deiner stelle vorsichtig "sachen direkt ins web" zu stellen, wenn dir schon die Grundlagen des Servermanagements fehlen (Nimms nicht persönlich, jeder muss irgenwo Anfangen - aber das als genereller Tipp - die bösen Jungs/Bots im Netz nutzen jeden konfigurationfehler gnadenlos aus)
Dani
Dani 26.05.2018 um 14:43:35 Uhr
Goto Top
Moin,
für sehen die Zeilen 11 bis 18 eher so aus, als würde der inhalt von private.key bzw. pem.crt nicht vollständig bzw. richtig sein. In die pem.crt wird das Zertifikat für die Domain im Base64 Format hineinkopiert. Der bisherige Zertifikat bzw. Inhalt muss vollständig gelöscht werden. Das selbe gilt für die andere Datei (private.key).


Viele Grüße,
Dani