我搞砸了为我的域购买错误的SSL证书?

我刚刚从Go Daddy购买了SSL证书。 我设置证书是:

www.mydomainname.com(我改变了域名,你可以告诉。)

我设置了Apache,它正在工作。 所以当我inputhttps://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当我想要安全的请求。

我做错了什么?

这是我的Apacheconfiguration:

在网站启用(我正在使用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> 

检查您的Apacheconfiguration,以确保您正在侦听端口80的HTTP和端口443的HTTPS。

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

您需要configuration虚拟主机,一个用于*:80,一个用于*:443。 *:443需要具有SSL规范,*:80不应该有SSL的东西在里面。

您没有购买错误的SSLauthentication。

你实际上需要configuration2个VHosts,SSL VHost和非SSL VHost只有你实际放置在VHost中的SSL部分不同,因为你可能有很多SSL VHosts(听不同的端口),实际上并不会感觉提供这个在服务器广泛的上下文,我认为是你在做什么。

好的,我修好了。 我之前混淆了没有Virtualhost 。 这是最终configuration:

ssl的configuration是:

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

Webappconfiguration是:

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

如果您真的购买了错误的证书,而不仅仅是configuration问题,那么最好的计划通常是取消/撤销您的证书并重新发布。

大多数的CA有一个政策,他们会免费做一段时间(即1周)。

希望这可以帮助。