Apache SSL配置错误(SSL连接错误)
我正在尝试在我的服务器上配置Apache以使用ssl,但每次访问我的网站时,都会在浏览器中收到以下消息:
SSL连接错误。 无法与服务器建立安全连接。 这可能是服务器的问题,或者它可能需要您没有的客户端身份验证证书。 错误107(net :: ERR_SSL_PROTOCOL_ERROR):SSL协议错误。
上面的错误消息似乎是谷歌浏览器原生的。 但是,即使消息不同,该站点的ssl在任何浏览器上都不起作用。
只是一些背景情况:我正在使用Ubuntu 10.04桌面版。 我通过安装zend服务器来安装apache(它自动安装了apache)。 然后我安装了openssl。 非https页面在网站上正常工作。 我试图从多个证书网站获得试用证书,但没有任何工作(同样的错误)。 我以前在另一台服务器上托管我的网站,其中ssl工作得很好。 我也尝试使用该服务器的密钥和crt文件,但我得到了同样的错误。 虽然域名和IP仍然相同。 我的SSLCertificateFile和SSLCertificateKeyFile指向正确的目录和文件。 我也没有启用SSLVerifyClient。
如果任何人有任何建议,将不胜感激。
我遇到了与@ User39604相同的问题,不得不遵循各种建议。 由于他不记得他遵循的确切路线,让我列出我的路线:
使用<?php echo phpinfo();?>
检查您是否拥有SSL YES
如有必要
A.在apache上启用ssl sudo a2enmod ssl
B.安装openssl sudo apt-get install openssl
C.检查端口443是否打开sudo netstat -lp
D.如有必要,更改/etc/apache2/ports.conf
,这个工作
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
NameVirtualHost *:443
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
通过获取密钥和证书
A.向一对认证机构(Comodo,GoDaddy,Verisign)支付费用
B.生成自己的* - 见下文(仅用于测试目的)
改变你的配置(在ubuntu12 /etc/apache2/httpd.conf
- 默认是一个空文件)以包含一个合适的<VirtualHost>
(替换MYSITE.COM
以及密钥和证书路径/名称以指向你的证书和密钥) :
<VirtualHost _default_:443>
ServerName MYSITE.COM:443
SSLEngine on
SSLCertificateKeyFile /etc/apache2/ssl/MYSITE.COM.key
SSLCertificateFile /etc/apache2/ssl/MYSITE.COM.cert
ServerAdmin MYWEBGUY@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/errorSSL.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/accessSSL.log combined
</VirtualHost>
而许多其他虚拟主机配置将在/etc/apache2/sites-enabled/
和/etc/apache2/sites-available/
它是用于解决所有问题的CRUCIAL的/etc/apache2/httpd.conf
。
获取更多信息:
http://wiki.vpslink.com/Enable_SSL_on_Apache2
http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#selfcert
*生成自己的证书(自签名)将导致用户的浏览器无法识别其权限的证书。 因此,浏览器会尖叫血腥谋杀,用户在浏览器实际打开页面之前必须“理解风险”十几次。 所以它只能用于测试目的。 话虽如此,这是如何做到的:
/etc/apache2/
) ssl
这样的文件夹(或者任何适合你的文件夹,这个名称不是系统需求) /etc/apache2/ssl
sudo openssl req -new -x509 -nodes -out MYSITE.COM.crt -keyout MYSITE.COM.key
<VirtualHost>
标记中使用MYSITE.COM.crt
和MYSITE.COM.key
名称格式不符合严格的系统要求,必须与文件相同:) - 212-MYSITE.COM.crt
, june2014-Godaddy-MYSITE.COM.crt
应该可以工作。
我在chrome中遇到了同样的错误(并且在Firefox,IE中有不同的错误)。 同样在error.log中,我得到[error] [client cli.ent.ip.add] Invalid method in request x16x03
按照本网站的说明进行操作,我更改了我的配置FROM:
<VirtualHost subdomain.domain.com:443>
ServerAdmin admin@domain.com
ServerName subdomain.domain.com
SSLEngine On
SSLCertificateFile conf/ssl/ssl.crt
SSLCertificateKeyFile conf/ssl/ssl.key
</VirtualHost>
至:
<VirtualHost _default_:443>
ServerAdmin admin@domain.com
ServerName subdomain.domain.com
SSLEngine On
SSLCertificateFile conf/ssl/ssl.crt
SSLCertificateKeyFile conf/ssl/ssl.key
</VirtualHost>
现在它工作正常:)
我想为这种情况提出一个常见原因:
有时候一个客户正在运行Skype,它使用端口443而没有意识到它。 当他们开始启动Tomcat或Apache时,它似乎开始,但不能与端口443绑定。这是用户在浏览器中收到的确切消息。 解决方法是停止在端口443上运行的内容并重新启动Web服务器,以便它可以与端口443绑定。
客户可以在启动网络服务器后重新启动Skype,Skype会检测到端口443正在使用中,并选择其他端口使用。
链接地址: http://www.djcxy.com/p/32461.html上一篇: Apache SSL Configuration Error (SSL Connection Error)
下一篇: Rails 4 server takes port number on web url to open the site