Cloudflare SSL握手失败(错误525)

时间:2017-07-27 08:51:02

标签: apache ssl ssl-certificate cloudflare

我的网站(和主机)存在问题。 我正在为我的网站使用完整(严格)加密设置。而且我不知道为什么它会遇到错误,因为上个月网络工作正常。

这是调试

使用curl -sv -o命令:

curl -sv -o /dev/null https://<domain>.com/ --resolve <domain>.com:<<port>>:<<ip>>

* Added <domain>.com:<<port>>:<<ip>> to DNS cache
* Hostname <domain>.com was found in DNS cache
*   Trying <<vps_ip>>...
* TCP_NODELAY set
* Connected to <domain>.com (<<vps_ip>>) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: /usr/local/etc/openssl/cert.pem
  CApath: /usr/local/etc/openssl/certs
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
} [5 bytes data]
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
* stopped the pause stream!
* Closing connection 0

使用openssl s_client命令:

openssl s_client -connect <<vps_ip>>:443 | openssl x509 -text -noout

52457:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.6/src/ssl/s23_clnt.c:618: unable to load certificate

52458:error:0906D06C:PEM routines:PEM_read_bio:no start line:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.6/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE

这是VHost配置:

Listen 80
<VirtualHost *:80>
    ServerName <domain>
    ServerAlias <alias>
    ServerAdmin -alreadyset-
    DocumentRoot -alreadyset-

    SSLEngine      off
    SSLCertificateFile        -alreadyset-/mikata.pem
    SSLCertificateKeyFile     -alreadyset-/mikata.key

    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>

    <Directory /home/emtetour/public_html>
        Options Indexes FollowSymLinks Multiviews
        AllowOverride None
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>

    ErrorLog -alreadyset-
    CustomLog -alreadyset-

</VirtualHost>

Listen 443
<VirtualHost *:443>
    ServerName <domain>
    ServerAlias <alias>
    ServerAdmin -alreadyset-
    DocumentRoot -alreadyset-

    SSLEngine      on
    SSLCertificateFile        -alreadyset-/mikata.pem
    SSLCertificateKeyFile     -alreadyset-/mikata.key

    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>

    <Directory /<directory>/public_html>
        Options Indexes FollowSymLinks Multiviews
        AllowOverride None
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>

</VirtualHost>

任何人都可以帮助我吗?已经4天了,我不知道该修复什么... 感谢..

P.S。 服务器正在运行带有UbuntuOS的Apache2.4.25。密码和协议与cloudflare SSL兼容。

找到解决方案

这可能是一个非常晚的编辑,但显然Apache需要443端口的默认VirtualHost设置。

所以你必须添加像111-default.conf这样的东西,然后只编写服务器管理员,文档根目录和SSL配置(因为我是一个通配证书,我使用与网站相同的配置)。

希望这对遇到类似问题的其他人有帮助。

2 个答案:

答案 0 :(得分:0)

根据您提供的错误消息,您的证书看起来很糟糕:

Expecting: TRUSTED CERTIFICATE

答案 1 :(得分:0)

我放

<VirtualHost *:443></VirtualHost>

在000-defaults.conf中,仅定义了DocumentRoot并得到了相同的错误。 因此,删除它之后,一切都很好。