我是否为我的域名购买了错误的 SSL 证书?

我是否为我的域名购买了错误的 SSL 证书?

我刚刚从去吧爸爸。我将证书设置为:

www.mydomainname.com(正如您所知,我更改了域名。)

我设置了 Apache,它正在运行。因此,当我输入时,https://www.mydomainname.com一切都正常。

然而:

当我输入时,http://www.mydomainname.comApache 出现以下错误:

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 配置:

在 sites-enabled 下(我使用 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>

答案1

检查您的 Apache 配置以确保您正在监听 HTTP 端口 80 和 HTTPS 端口 443。

在您的 中/etc/httpd/conf/httpd.conf,您应该有“Listen 80”。您还应该有一个/etc/httpd/conf.d/ssl.conf文件(可能)其中指定了“Listen 443”。

您需要配置虚拟主机,一个用于 *:80,另一个用于 *:443。*:443 中需要包含 SSL 规范,而 *:80 中不应包含 SSL 内容。

您没有购买错误的SSL认证。

答案2

您实际上需要配置 2 个 VHost,SSL VHost 和非 SSL VHost 的区别仅在于您实际放置在 VHost 中的 SSL 部分,因为您可能拥有多个 SSL VHost(监听不同的端口),所以在服务器范围的上下文中提供这一点实际上是没有意义的,我认为你正在这样做。

答案3

好的,我修好了。我之前没有弄混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>

答案4

如果您确实购买了错误的证书,而且这不仅仅是配置问题,那么最好的办法通常是取消/撤销您的证书并重新颁发。

大多数 CA 都有一项政策,即他们会在一定时期内(即 1 周)免费提供此项服务。

希望这可以帮助。

相关内容