Fehler beim Einrichten von SSL an einem alternativen Port

494
FlyingHazard

Ich habe einen Webserver, der auf einem Raspberry Pi läuft. Ich führe Stunnel für Port 443 aus. Ich habe also daran gearbeitet, meinen Webserver an Port 8443 zu verschieben. Ich verwende Let's Encrypt (Certbot) für meine SSL-Zertifikate, und zuvor funktionierten sie einwandfrei.

Ich habe gelernt, wie Zertifikate mithilfe der DNS-Anforderung abgerufen werden können. Port 443 für die Authentifizierung ist daher nicht mehr erforderlich. Ich glaube, ich habe alle meine Konfigurationsdateien richtig eingerichtet, aber ich füge sie unten ein.

Apache läuft, und es sollte kein Konflikt auftreten. Wenn ich jedoch versuche, über HTTPS auf meine Site zuzugreifen, sagt Chrome, dass die Site die Verbindung unerwartet geschlossen hat, während Edge sagt, dass veraltete oder unsichere TLS-Einstellungen verwendet werden.

Ich habe versucht, das selbst herauszufinden, aber zu diesem Zeitpunkt habe ich keine Ahnung, was ich tun soll.

Ports.conf

# If you just change the port or add more ports here, you will likely also' # have to change the VirtualHost statement in' # /etc/apache2/sites-enabled/000-default.conf' Listen 80 #<IfModule ssl_module>' # Listen 8443' #</IfModule>' #<IfModule mod_gnutls.c>' # Listen 8443' #</IfModule>' # vim: syntax=apache ts=4 sw=4 sts=4 sr noet' <IfModule mod_ssl.c> Listen 8443 </Ifmodule> 

Beispiel für HTTPS VHost Config

<IfModule mod_ssl.c> <VirtualHost *:8443> ServerName mysite.tld ServerAdmin myemail@provider.com DocumentRoot /var/www/html ErrorLog $/error.log CustomLog $/access.log combined SSLCertificateFile /etc/letsencrypt/live/mysite.tld/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/mysite.tld/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf </VirtualHost> </IfModule> 

Beispiel für eine HTTP-Konfiguration

<VirtualHost *:80> ServerName mysite.tld ServerAdmin myemail@provider.com DocumentRoot /var/www/html ErrorLog $/error.log CustomLog $/access.log combined Redirect permanent / https://mysite.tld/ RewriteEngine on RewriteCond % =mysite.tld RewriteRule ^ https:// [END,QSA,R=permanent] </VirtualHost> 

Ich habe diese Frage bereits zu Server Fault gestellt und wurde hier umgeleitet. Die Antworten, die ich erhielt, wiesen mich in die richtige Richtung, aber ich weiß immer noch nicht, was ich dagegen tun kann. Die beste Antwort war

Wenn Sie nur http: //mysite.tld besuchen, werden Sie zum Port 443 (https) weitergeleitet, an dem nichts zu hören ist. Dies erklärt Ihren Fehler.

Kann das jemand verstehen? Vielen Dank!

0

2 Antworten auf die Frage

0
Christian H

Haben Sie versucht, Domäne: 8443 in Ihren Browser einzugeben?

Jeder Browser hat standardmäßig den Port 80 für HTTP-Pages und Port 443 für HTTPS-Pages. Wenn Sie einen Port explizit angeben möchten, müssen Sie den Port mit einem Doppelpunkt an die URL anhängen

Ja, ich habe vergessen zu erwähnen, dass es funktioniert, wenn ich das mache, aber die Webseite, die erscheint, ist nicht die, die sich auf der DocumentRoot befindet. Ich glaube, die andere Antwort auf diese Frage ist richtig, aber ich brauche etwas Zeit, um es auszuprobieren. FlyingHazard vor 6 Jahren 0
0
telcoM

Sie haben angegeben, dass Apache auf Port 8443 hören sollte nur, wenn mod_sslgeladen wird (dh das Apache hat die Fähigkeit, SSL / TLS zu verwenden), aber in der Konfiguration Schnipsel, nichts scheint Apache zu sagen, tatsächlich verwenden SSL / TLS auf Port 8443.

Sie tun dies, indem Sie SSLEngine onzu dem <VirtualHost>Block hinzufügen, der SSL / TLS verwenden soll:

<VirtualHost *:8443> SSLEngine on ServerName mysite.tld # etc... 

Wenn Sie einen Browser an eine HTTPS-URL umleiten, ohne explizit eine Portnummer anzugeben, versucht der Browser, eine Verbindung zum Standard-HTTPS-Port (443) herzustellen. Genauso wie Port 80 standardmäßig für einfaches HTTP verwendet wird.

Sie müssen Ihre Umleitung ändern, um die Portnummer aufzunehmen:

RewriteRule ^ https://:8443 [END,QSA,R=permanent] 
Vielen Dank, @telecoM, dies scheint mein Problem zu sein, insbesondere wenn die Webseite an Port 443 umgeleitet wird. Ich brauche Zeit, um das auszuprobieren, aber ich habe das Gefühl, dass dies funktionieren sollte. Eine Frage, die ich für Sie habe, ist, dass diese Portnummer in der URL angezeigt wird. Werden Sie gemäß dieser Umschreibungsregel umgeleitet? FlyingHazard vor 6 Jahren 0
OK, @telecoM, ich habe die Umschreibungsfunktion in Ordnung gebracht, aber die angezeigte Seite entspricht nicht der auf DocumentRoot, und die Portnummer wird in der URL angezeigt. Gibt es eine Möglichkeit, dies zu ändern? FlyingHazard vor 6 Jahren 0
Wenn Sie nicht möchten, dass die Portnummer in der URL angezeigt wird, müssen Sie die Standardports verwenden: 80 für HTTP und 443 für HTTPS. Sie sagten jedoch, Sie hätten Stunnel in Port 443, so dass dieser Port bereits belegt ist. telcoM vor 6 Jahren 0