DNS-Link: wunschname.ddns.net/prestashop.de
Also kein eigenes Zertifikat hier.
Es sollte trotzdem möglich sein der Domain wunschname.ddns.net ein Zertifikat erstellen zu lassen.
PS: Wie kann ich hier im Forum die Zeilenumbrüche machen?
Einen Absatz kannst du mit einer Leerzeile einfuegen. Zum Erstellen von Listen den Button im Editor klicken.
Das wusste ich auch nicht.
Nun gut, ich versuche mal alles mal wieder in einer Schritt für Schritt Anleitung fest zu halten unter Restriktion das wunschname.ddns.net deine Domain ist für alle Projekte.
Anmelden als root und wechseln ins Heimatverzeichnis
sudo -i cd ~
getssl vorbereiten
Herunterladen von getssl
git clone https://github.com/srvrco/getssl.git
Verschieben von getssl nach /etc/getssl
mv ~/getssl /etc
Domain anlegen registrieren bei getssl um config templates erstellen zu lassen
/etc/getssl/getssl -c wunschname.ddns.net
getssl config für wunschname.ddns.net anpassen
nano ~/.getssl/wunschname.ddns.net/getssl.cfg
Beispielvorlage für wunschname.ddns.net in ~/.getssl/wunschname.ddns.net/getssl.cfg
# Uncomment and modify any variables you need # see https://github.com/srvrco/getssl/wiki/Config-variables for details # # The staging server is best for testing #CA="https://acme-staging.api.letsencrypt.org" # This server issues full certificates, however has rate limits CA="https://acme-v01.api.letsencrypt.org" #AGREEMENT="https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf" # Set an email address associated with your account - generally set at account level rather than domain. ACCOUNT_EMAIL="webmaster@wunschname.ddns.net" ACCOUNT_KEY_LENGTH=4096 ACCOUNT_KEY="/etc/ssl/private/ca/ca.key" PRIVATE_KEY_ALG="rsa" # Additional domains - this could be multiple domains / subdomains in a comma separated list # Note: this is Additional domains - so should not include the primary domain. # SANS= # Acme Challenge Location. The first line for the domain, the following ones for each additional domain. # If these start with ssh: then the next variable is assumed to be the hostname and the rest the location. # An ssh key will be needed to provide you with access to the remote server. # If these start with ftp: then the next variables are ftpuserid:ftppassword:servername:ACL_location # These should be of the form "/path/to/your/website/folder/.well-known/acme-challenge" # where "/path/to/your/website/folder/" is the path, on your web server, to the web root for your domain. #ACL=('/var/www/cryptic.systems/web/.well-known/acme-challenge' # 'ssh:server5:/var/www/cryptic.systems/web/.well-known/acme-challenge' # 'ftp:ftpuserid:ftppassword:cryptic.systems:/web/.well-known/acme-challenge') ACL=('/var/www/letsencrypt/.well-known/acme-challenge') #Enable use of a single ACL for all checks USE_SINGLE_ACL="true" # Location for all your certs, these can either be on the server (so full path name) or using ssh as for the ACL DOMAIN_CERT_LOCATION="/etc/ssl/public/wunschname.ddns.net/domain.crt" DOMAIN_KEY_LOCATION="/etc/ssl/private/wunschname.ddns.net/domain.key" CA_CERT_LOCATION="/etc/ssl/public/wunschname.ddns.net/chain.crt" #DOMAIN_CHAIN_LOCATION="" # this is the domain cert and CA cert #DOMAIN_KEY_CERT_LOCATION="" # this is the domain_key and domain cert #DOMAIN_PEM_LOCATION="" # this is the domain_key. domain cert and CA cert # The command needed to reload apache / nginx or whatever you use RELOAD_CMD="service apache2 reload" # The time period within which you want to allow renewal of a certificate # this prevents hitting some of the rate limits. RENEW_ALLOW="30" # Define the server type. This can be https, ftp, ftpi, imap, imaps, pop3, pop3s, smtp, # smtps_deprecated, smtps, smtp_submission, xmpp, xmpps, ldaps or a port number which # will be checked for certificate expiry and also will be checked after # an update to confirm correct certificate is running (if CHECK_REMOTE) is set to true #SERVER_TYPE="https" #CHECK_REMOTE="true" # Use the following 3 variables if you want to validate via DNS #VALIDATE_VIA_DNS="true" #DNS_ADD_COMMAND= #DNS_DEL_COMMAND= #AUTH_DNS_SERVER="" #DNS_WAIT=10 #DNS_EXTRA_WAIT=60
Anlegen der SSL-Verzeichnisstruktur
mkdir /etc/ssl/private/wunschname.ddns.net -p mkdir /etc/ssl/private/ca -p mkdir /etc/ssl/public/wunschname.ddns.net -p
.well-known Verzeichnisstruktur anlegen
mkdir /var/www/letsencrypt/.well-known/acme-challenge -p
.well-known als Alias in Apache config setzen
mkdir /etc/apache2/conf-available/ -p touch /etc/apache2/conf-available/letsencrypt.conf echo "Alias /.well-known /var/www/letsencrypt/.well-known" > /etc/apache2/conf-available/letsencrypt.conf
Config letsencrypt aktivieren unter Apache2
a2enconf letsencrypt
SSL und Rewrite Modul aktivieren
a2enmod ssl a2enmod rewrite
Apache2 neustarten
service apache2 restart
SSL Zertifikate erstellen lassen
/etc/getssl/getssl -f wunschname.ddns.net
Deine Zertifikate im Überblick nach registrierung
ca.key /etc/ssl/private/ca/ca.key domain.key /etc/ssl/private/wunschname.ddns.net/domain.key domain.crt /etc/ssl/public/wunschname.ddns.net/domain.crt chain.crt /etc/ssl/public/wunschname.ddns.net/chain.crt
Zertifikate regelmäßig automatisch updaten durch cronjob.
crontab -e -u root
Diese Zeile am ende einfügen
# Zertifikate updaten 0 0 * * * /etc/getssl/getssl -a -q
Apache2 vHosts vorbereiten Ich bin mir nicht genau sicher was du da genau für vHosts unter /etc/apache/sites-enabled aktiviert hast. Ich gehe einfach mal davon aus, dass alle deaktiviert sind (a2dissite *), um nun eine vHost Datei zu erstellen mit dem Direktory (/var/www/html/Projekt), diese zu aktivieren sodass du später deine Projekte unter wunschname.ddns.net/Projekt findest.
vHost-Datei mit dem namen www.conf unter /etc/apache2/sites-avaliable/www.conf
<VirtualHost *:80> # Server Details ServerName wunschname.ddns.net ServerAlias wunschname.ddns.net ServerAdmin webmaster@wunschname.ddns.net # Wurzelverzeichnis und deren Einstellungen DocumentRoot /var/www/html <Directory /var/www/html> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny #Deny from all Allow from all </Directory> # Logs ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # Umleiten auf HTTPS RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} </VirtualHost> <VirtualHost *:443> # Server Details ServerName wunschname.ddns.net ServerAlias wunschname.ddns.net ServerAdmin webmaster@wunschname.ddns.net # SSLEngine aktivieren (Dafür muss das Modul ssl aktiviert sein, a2enmod ssl) # Um Generelle SSL Optionen einstellen zu können. Diese SSL Optionen sind gültig für die Verbindung zwischen Client und Server. SSLEngine on # SSLCertificateFile # Pfadangabe der Zertifikatsdatei. Das Zertifikat beinhaltet die Signatur der Certificate Authority (CA) als Gültigkeitsnachweis. SSLCertificateFile /etc/ssl/public/wunschname.ddns.net/domain.crt # SSLCertificateKeyFile # Pfadangabe des Privatekeys. SSLCertificateKeyFile /etc/ssl/private/wunschname.ddns.net/domain.key # SSLCertificateKeyFile # Pfadangabe des Root-Bundles. Das Root-Bundle ist das Zertifikat der (CA). Es muss angegeben werden, damit der Client unter Angabe # des Signierten Zertifkates seine eigene Prüfsumme bilden kann um der Seite das vertrauen aus zu sprechen. SSLCertificateChainFile /etc/ssl/public/wunschname.ddns.net/chain.crt # SSLProtocol # Legt fest, welcher SSL-Version genutzt werden soll zwischen Client und Server. SSLProtocol all -SSLv2 -SSLv3 # SSLCipherSuite # Gibt die CiperSuite an, den Algorythmus, mit dem eine SSL-Verbindung zwischen Client und Server aufgebaut werden soll. SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS # SSLHonorCipherOrder # Wenn SSLHonorCipherOrder aktiviert ist (on), kann der Client keine CiperSuite vorgeben, die beim Aufbau der SSL Verbindung genutzt werden soll. # Der Server gibt indemfall die CiperSuite vor. SSLHonorCipherOrder on # HTTP Strict-Transport-Security # Den Client anweisen, in Zukunft direkt per SSL eine Verbindung auf zu bauen, sodass die RewriteRule nicht gebraucht wird. Header always set Strict-Transport-Security "max-age=31536000;" # Wurzelverzeichnis und deren Einstellungen DocumentRoot /var/www/html <Directory /var/www/html> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny #Deny from all Allow from all </Directory> # Logs ErrorLog ${APACHE_LOG_DIR}/ssl_error.log CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined </VirtualHost>
www.conf in Apache2 aktivieren
a2ensite nextcloud
Änderungen neu einlesen lassen von Apache
service apache2 reload