Habe ich es versaut, das falsche SSL-Zertifikat für meine Domain zu kaufen?

7

Ich habe gerade ein SSL-Zertifikat von Go Daddy gekauft . Ich richte das Zertifikat folgendermaßen ein:

www.mydomainname.com (Ich habe die Domain geändert, wie Sie sehen können.)

Ich habe Apache eingerichtet und es funktioniert. Wenn ich tippe https://www.mydomainname.com, funktioniert alles.

JEDOCH:

Wenn ich tippe, http://www.mydomainname.comerhalte ich diesen Fehler von Apache:

Bad Request

Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.

Ich hatte gehofft, ich könnte tippen

http://www.mydomainname.com für HTTP-Anfragen

und

https://www.mydomainname.com wenn ich sichere Anfragen möchte.

Was habe ich falsch gemacht?

Hier ist meine Apache-Konfiguration:

Unter Sites-fähig (ich verwende Ubuntus Apache-Setup)

Ich habe Datei angerufen ssl

    <IfModule mod_ssl.c>;
        SSLEngine On
        SSLCertificateFile /etc/apache2/ssl/www.mydomainname.com.crt
        SSLCertificateKeyFile /etc/apache2/ssl/www.mydomainname.com.key
    </IfModule>

und ein anderer namens webapp:

    <IfModule mod_proxy_ajp.c>
        ProxyRequests On
        ProxyVia On

        <Location />
            Order allow,deny
            Allow from all
            AuthType Basic
            AuthName "Restricted area"
            AuthUserFile /etc/apache2/passwd/access
            Require valid-user
            ProxyPass ajp://localhost:9999/
            ProxyPassReverse ajp://localhost:9999/
        </Location>

        <Location /uploader>
            Order allow,deny
            Satisfy Any
            Allow from all
            ProxyPass ajp://localhost:9999/uploader
            ProxyPassReverse ajp://localhost:9999/uploader
        </Location>
    </IfModule>
Peter Mortensen
quelle
1
Hallo Peter. Ihr Zertifikat ist in Ordnung, machen Sie sich also keine Sorgen, dass Sie dort Geld verschwendet haben. Das Problem liegt in Ihrer Apache-Konfiguration, und Sie haben bei Serverfault mehr Glück mit Ihrer Frage.
Matt Simmons
Ja zu beiden. Gut mit dem SSL-Zertifikat, und deaktivieren Sie das Community-Wiki!
Squillman
1
Diese Frage wurde ursprünglich bei Stack Overflow: stackoverflow.com/questions/972080/… gestellt und durch Abstimmung automatisch hierher migriert. Wenn Fragen migriert werden, werden sie in den "Community-Wiki" -Modus gezwungen und sind nicht demselben Benutzerkonto zugeordnet, sodass niemand das Wiki deaktivieren kann.
Greg Hewgill

Antworten:

10

Überprüfen Sie Ihre Apache-Konfiguration, um sicherzustellen, dass Sie Port 80 auf HTTP und Port 443 auf HTTPS überwachen.

In Ihrem /etc/httpd/conf/httpd.confsollten Sie "Listen 80" haben. Sie sollten auch eine /etc/httpd/conf.d/ssl.confDatei (wahrscheinlich) mit "Listen 443" angegeben haben.

Sie müssen virtuelle Hosts konfigurieren, einen für *: 80 und einen für *: 443. Das *: 443 muss die SSL-Spezifikation enthalten, das *: 80 sollte nicht das SSL-Zeug enthalten.

Sie haben nicht die falsche SSL-Zertifizierung gekauft.

Matt Simmons
quelle
1

Sie müssen tatsächlich 2 VHosts konfigurieren. Der SSL-VHost und der Nicht-SSL-VHost unterscheiden sich nur durch den SSL-Teil, den Sie tatsächlich im VHost platzieren, da Sie möglicherweise eine Vielzahl von SSL-VHosts haben (die auf verschiedenen Ports lauschen), die nicht tatsächlich hergestellt werden Es ist sinnvoll, dies in einem serverweiten Kontext bereitzustellen, den Sie meiner Meinung nach tun.

Martin M.
quelle
1

OK, ich habe es behoben. Ich war durcheinander, weil ich es nicht Virtualhostfrüher hatte. Dies ist die Endkonfiguration:

SSL-Konfiguration ist:

    <VirtualHost *:443>
        DocumentRoot /var/www/

        <IfModule mod_proxy_ajp.c>
            ProxyRequests On
            ProxyVia On

            <Location />
                Order allow,deny
                Allow from all
                AuthType Basic
                AuthName "Restricted area"
                AuthUserFile /etc/apache2/passwd/site-access
                Require valid-user
                ProxyPass ajp://localhost:9999/
                ProxyPassReverse ajp://localhost:9999/
            </Location>

            <Location /uploader>
                Order allow,deny
                Satisfy Any
                Allow from all
                ProxyPass ajp://localhost:9999/uploader
                ProxyPassReverse ajp://localhost:9999/uploader
            </Location>
        </IfModule>

        <IfModule mod_ssl.c>
            SSLEngine On
            SSLCertificateFile /etc/apache2/ssl/www.mydomain.com.crt
            SSLCertificateKeyFile /etc/apache2/ssl/www.mydomain.com.key
        </IfModule>
    </VirtualHost>

Die Webapp-Konfiguration lautet:

    <VirtualHost *:80>
        DocumentRoot /var/www/

        <IfModule mod_proxy_ajp.c>
            ProxyRequests On
            ProxyVia On

            <Location />
                Order allow,deny
                Allow from all
                AuthType Basic
                AuthName "Restricted area"
                AuthUserFile /etc/apache2/passwd/site-access
                Require valid-user
                ProxyPass ajp://localhost:9999/
                ProxyPassReverse ajp://localhost:9999/
            </Location>

            <Location /uploader>
                Order allow,deny
                Satisfy Any
                Allow from all
                ProxyPass ajp://localhost:9999/uploader
                ProxyPassReverse ajp://localhost:9999/uploader
            </Location>
        </IfModule>
    </VirtualHost>
Peter Delahunty
quelle
Super, ich bin froh, dass es für dich funktioniert!
Matt Simmons
0

Wenn Sie WIRKLICH das falsche Zertifikat gekauft haben und es sich nicht nur um ein Konfigurationsproblem handelt, ist es normalerweise am besten, Ihr Zertifikat zu stornieren / zu widerrufen und es erneut ausstellen zu lassen.

Die meisten Zertifizierungsstellen haben die Richtlinie, dass sie dies für einen bestimmten Zeitraum (dh 1 Woche) kostenlos tun.

Hoffe das hilft.

KPWINC
quelle