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

    *生成自己的证书(自签名)将导致用户的浏览器无法识别其权限的证书。 因此,浏览器会尖叫血腥谋杀,用户在浏览器实际打开页面之前必须“理解风险”十几次。 所以它只能用于测试目的。 话虽如此,这是如何做到的:

  • 转到apache文件夹(在ubuntu12 /etc/apache2/
  • 创建一个像ssl这样的文件夹(或者任何适合你的文件夹,这个名称不是系统需求)
  • 转到选定的目录/etc/apache2/ssl
  • 运行sudo openssl req -new -x509 -nodes -out MYSITE.COM.crt -keyout MYSITE.COM.key
  • <VirtualHost>标记中使用MYSITE.COM.crtMYSITE.COM.key
  • 名称格式不符合严格的系统要求,必须与文件相同:) - 212-MYSITE.COM.crtjune2014-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