
Früher habe ichhttps://example.com. Dann entschied ich, dass ich verwenden wolltehttps://myotherexample.comanstelle von example.com. Also habe ich den Server eingerichtet, DNS auf diesen Server gerichtet und alles war großartig. Jetzt wollte ich umleitenhttps://example.comZuhttps://myotherexample.comdamit Benutzer mit der alten Adresse auf die neue Site weitergeleitet werden. Dies funktioniert gut, wenn Port 80 auf die neue Domäne umgeleitet wird. Beim Versuch, Port 443 (den SSL-Port) umzuleiten, scheint Apache jedoch ein gültiges SSL-Zertifikat für die alte Domäne zu verlangen (obwohl ich unter dieser Adresse keine sichere Version der Site mehr anbiete). Mein SSL-Zertifikat für die alte Domäne ist abgelaufen, und da es dort nichts zu schützen gibt, frage ich mich, wie ich diese Art der Umleitung durchführen kann.
example.com-Konfiguration:
▽
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /sites/example.com/html
ServerName example.com
ServerAlias www.example.com
Redirect / https://myotherexample.com/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Und die SSL-Version, die ich für die Weiterleitung auf die neue Domain benötige:
<VirtualHost *:443>
# 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
DocumentRoot /sites/example.com/html
ServerName example.com
ServerAlias www.example.com
Redirect / https://myotherexample.com/
<Directory /sites/example.com/html>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>
SSLEngine on
SSLCertificateKeyFile /etc/apache2/ssl/example.com.key
# this ssl is expired now
SSLCertificateFile /etc/apache2/ssl/example.com.crt
SSLCertificateChainFile /etc/apache2/ssl/example.com.IntermediateCA.crt
</VirtualHost>
Ich gehe das offensichtlich falsch an, aber gibt es eine Möglichkeit, eine SSL-Domäne (die https-Version der Domäne) mit Apache auf eine neue Domäne umzuleiten, ohne dass für die alte Domäne ein aktives SSL-Zertifikat erforderlich ist? Vielen Dank!
Antwort1
Dies ist das Verhalten, das Sie erwarten würden. Stellen Sie sich vor, jemand würde Ihr DNS kapern und eine 301-Umleitung einrichten. Sie könnenhttps://letsencrypt.org/für ein kostenloses Zertifikat und leiten Sie Clients um, bis auf die alte Domäne nicht mehr zugegriffen wird.
Antwort2
Ich habe Matts Antwort positiv bewertet, möchte es aber noch deutlicher sagen.
Die Umleitung ist eine HTTP-Sache, die als Satz von Antwortstatuscodes (3XX) und einem bestimmten Header (Standort) implementiert ist. Dies ist eine normale HTTP-Transaktion. HTTP in HTTPS ist nur nach erfolgreichem Aufbau einer TLS-Verbindung möglich, und für TLS ist ein gültiges Zertifikat erforderlich. Also: kein gültiges Zertifikat => kein TLS => kein HTTPS => keine Umleitung möglich.
Das abgelaufene Zertifikat ist ungültig. Daher sind keine HTTP-ähnlichen Aktionen (einschließlich Weiterleitungen) möglich, bis das Zertifikat ersetzt wurde.