我正在尝试使用自签名证书设置我的域名。我创建了证书并将server.key
和server.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