Назад | Перейти на главную страницу

Я ошибся, купив неправильный сертификат SSL для своего домена?

Я только что приобрел сертификат SSL у Иди, папа. Я устанавливаю сертификат:

www.mydomainname.com (я сменил домен, как вы понимаете.)

Я настраиваю Apache, и он работает. Итак, когда я печатаю https://www.mydomainname.com все работает.

ТЕМ НЕ МЕНИЕ:

Когда я печатаю http://www.mydomainname.com Я получаю эту ошибку от 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.

Я надеялся, что смогу напечатать

http://www.mydomainname.com для HTTP-запросов

и

https://www.mydomainname.com когда мне нужны безопасные запросы.

Что я сделал не так?

Вот моя конфигурация Apache:

Под сайтами с поддержкой (я использую установку Ubuntu Apache)

У меня есть файл под названием ssl

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

а другой позвонил 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>

Проверьте конфигурацию Apache, чтобы убедиться, что вы слушаете порт 80 для HTTP и порт 443 для HTTPS.

В твоем /etc/httpd/conf/httpd.conf, у вас должен быть "Слушай 80". Вы также должны иметь /etc/httpd/conf.d/ssl.conf файл (возможно) с указанием "Listen 443".

Вам необходимо настроить виртуальные хосты, один для *: 80 и один для *: 443. В *: 443 должна быть спецификация SSL, в *: 80 не должно быть материалов SSL.

Вы купили не тот сертификат SSL.

Хорошо, я исправил. Я запутался с тем, что не имел Virtualhost ранее. Это конечная конфигурация:

Конфигурация ssl:

    <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>

Конфигурация Webapp:

    <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>

На самом деле вам нужно настроить 2 VHosts, SSL VHost и VHost без SSL отличаются только частью SSL, которую вы фактически размещаете в VHost, поскольку у вас может быть множество SSL VHosts (прослушивание на разных портах), которое на самом деле не делает смысл предоставить это в контексте всего сервера, что, я думаю, именно то, что вы делаете.

Если вы ДЕЙСТВИТЕЛЬНО купили не тот сертификат, и это не просто проблема конфигурации, тогда лучший план - отменить / отозвать сертификат и повторно выпустить его.

У большинства центров сертификации есть политика, согласно которой они будут делать это бесплатно в течение определенного периода времени (например, 1 неделю).

Надеюсь это поможет.