LetsEncrypt Apache2 Virtualhost

bywizard

Lieutenant
Registriert
Okt. 2018
Beiträge
537
Guten Tag liebe Community!

Ich wollte heute einen VirtualHost installieren jedoch habe keine Ahnung wie das mit SSL bzw LetsEncrypt SSL geht

Hat wer nh Idee?
 
Ja, habe ich. Im unteren Link einfach Software (nginx, apache etc) und Betriebssystem (RHEL, Ubuntu etc) auswählen, und dann die Schritte lt. Anleitung beachten. Eigentlich idiotensicher.

https://certbot.eff.org/

Teste aber vorher, ob du die Website via http erreichst, und vergiss nicht, bei der Firewall https-Traffic zu erlauben bzw Port 443 zu öffnen.
 
Zuletzt bearbeitet von einem Moderator:
  • Gefällt mir
Reaktionen: tony_mont4n4, nkler und konkretor
das hab ich gemacht nur ich brauche eine config für einen vhost zb: mail.example.com
 
Ich empfehle dir Caddy, statt Apache2. Das kümmert sich um HTTPS ganz von selbst.
 
Also was genau möchtest du machen? Du hast eine Domain und möchtest ein auf deinem Server liegendes Webprojekt damit zugägnlich machen?

Dann musst du:
  • Dein Projekt in einen Ordner in /var/www ablegen. z.B. /var/www/meinprojekt
  • unter /etc/apache2/sites-available die Standard config Datei 000-Default kopieren und anpassen.
  • Der Webserver muss auf Port 80 und 443 erreichbar sein, sonst kannst du dir kein LetsEncrypt Zertifikat generieren lassen.
Theoretisch kannst du danach den Port 80 schließen, allerdings ist der Best-Practice-Weg, dass die Anwendung alle Anfragen über http auf https umleitet. Dafür hast du dann 2 VirtualHost Configs. Einmal für Port 80 und für Port 443. Wenn du Certbot verwenden möchtest, um dein LetsEncrypt Zertifikat zu erstellen, kannst du das direkt für Apache2 tun und du bekommst dann eine für Port 443 ausgelegte VirtualHost-Config
 
ist letztendlich egal, wie du sie nennst. z.b. meinprojekt.conf

mit dem Befehl

a2ensite meinprojekt.conf

landet dann ein symbolischer link im Verzeichnis /etc/apache2/sites-enabled. Links/Verzeichnisse die dort auftauchen sind somit "aktiv". Mit

a2dissite meinprojekt.conf

Kannst du einen VirtualHost wieder deaktivieren. Er bleibt aber bestehen im Verzeichnis /etc/apache2/sites-available, solange du die Datei nicht löschst.

Für LetsEncrypt legst du nur eine VirtualHost-Config für Port 80 an mit ServerName, DocumentRoot und einem Directory. Dann kannst du mit Certbot ein Zertifikat erstellen und in den Befehl die Flags für apache2 mitgeben. Das Tool fragt dich dann, ob du auch eine SSL Konfiguration automatisch erstellt haben möchtest. Wenn du das bestätigst, wird eine fertige VirtualHost Konfig für Port 443 in /etc/apache2/sites-available angelegt. Die Datei heißt dann meinprojekt-le-ssl.conf oder so ähnlich.

Grundsätzlich lege ich VirtualHosts immer an für die Domain, die sie bedienen.

Habe ich die Domain mydomain.com habe ich eine Config mydomain.com.conf und dementsprechend auch eine mydomain.com-le-ssl.conf, die automatisch generiert wurde. Natürlich ist es kein Hexenwerk den VirtualHost für Port 443 selbst zu erstellen, aber so ist es einfacher beim 1. Mal mit Let'sEncrypt

Hier mal eine Standardconf für http (Also Port 80)

Apache-Konfiguration:
<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        ServerName mydomain.com
        DocumentRoot /var/www/meinprojekt
       
        <Directory /var/www/meinprojekt>
            AllowOverride All
            Require all granted
        </Directory>

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>
 
Zuletzt bearbeitet:
Zurück
Oben