Apache https 配置

Apache https 配置

我正在尝试使用自签名证书设置我的域名。我创建了证书并将server.keyserver.crt文件放入C:/apache/config/然后我更新了我的httpd.confg主机以包含以下内容,

<VirtualHost 192.168.5.250:443>
    DocumentRoot C:/www
    ServerName example.com:443
    ServerAlias www.example.com:443

    SSLEngine on
    SSLCertificateFile C:/apache/conf/server.crt
    SSLCertificateKeyFile C:/apache/conf/server.key
    SSLVerifyClient none
    SSLProxyEngine off
    SetEnvIf User-Agent ".*MSIE.*" \
        nokeepalive ssl-unclean-shutdown \
        downgrade-1.0 force-response-1.0
    CustomLog logs/ssl_request_log \
        "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

现在当我去https://example.com我收到以下错误。

SSL 连接错误 无法与服务器建立安全连接。这可能是服务器的问题,或者它可能需要您没有的客户端身份验证证书。错误 107 (net::ERR_SSL_PROTOCOL_ERROR):SSL 协议错误。

当我运行 curl 时https://example.com我得到了错误,

curl:(35)错误:140770FC:SSL 例程:SSL23_GET_SERVER_HELLO:未知协议

有人能看到我做错什么了吗?

谢谢!

其他可能存在冲突的配置

<VirtualHost 192.168.5.250:80>
   ServerName example.com
   ServerAlias www.example.com
   DocumentRoot C:/www/domain
</VirtualHost>

# <VirtualHost 192.168.5.250:443> ..Above config is here </VirtualHost>

<VirtualHost 192.168.5.250:80>
   ServerName subdomain.example.com
   ServerAlias www.subdomain.example.com
   DocumentRoot C:/www/subdomain
</VirtualHost>

答案1

改变:

<VirtualHost 192.168.5.250:443>
  ServerName example.com:443
  ServerAlias www.example.com:443

到:

<VirtualHost *:443>
  ServerName example.com
  ServerAlias www.example.com

并改变:

<VirtualHost 192.168.5.250:80>

到:

<VirtualHost *:80>

然后重新加载 apache 并查看是否有效。

答案2

我必须先将我的虚拟主机192.168.5.250:443移至192.168.5.250:80

因此,当 NameVirtualHost不指定端口时,虚拟主机的顺序很重要

忽略端口 443 的配置

NameVirtualHost 192.168.5.250

<VirtualHost 192.168.5.250:80>
    # virtual host configs
</VirtualHost>

<VirtualHost 192.168.5.250:443>
    # virtual host configs
</VirtualHost>

有效的配置

NameVirtualHost 192.168.5.250:80
NameVirtualHost 192.168.5.250:443

<VirtualHost 192.168.5.250:80>
    # virtual host configs
</VirtualHost>

<VirtualHost 192.168.5.250:443>
    # virtual host configs
</VirtualHost>

或者

NameVirtualHost 192.168.5.250

<VirtualHost 192.168.5.250:443>
    # virtual host configs
</VirtualHost>

<VirtualHost 192.168.5.250:80>
    # virtual host configs
</VirtualHost>

答案3

就我而言,我没有启用站点“default-ssl”。/etc/apache2/sites-enabled文件夹中仅列出了“000-default”。

在 Ubuntu 14 LTS、Apache 2.4.7 上启用 SSL 站点:

a2ensite default-ssl
service apache2 reload

相关内容