SSL 错误 Zend Framework BoxAPi

Posted

技术标签:

【中文标题】SSL 错误 Zend Framework BoxAPi【英文标题】:SSL error Zend Framework BoxAPi 【发布时间】:2014-02-15 09:10:51 【问题描述】:

我在连接到需要 HTTPS 连接的 Oauth2 APi 时遇到问题。所以我试图在我的服务器(apache2)上配置 ssl 来提供我给 Box-API 的回调地址,这是一个 https 地址。

但我不断收到此错误:

 (Codice di errore: ssl_error_rx_record_too_long)

所以我搜索了网络,发现我必须在我的服务器上设置 ssl_mod。但是当我在文件中编写 LoadModule 行并重新启动服务器时,它说该模块已经内置,所以我查看了配置。 Httpd.conf 有这些行:

 <IfModule ssl_module>
 SSLRandomSeed startup builtin
 SSLRandomSeed connect builtin
 Listen 443
 </IfModule>
 [...]
 <VirtualHost *:443>
 ServerName localhost
 SSLProxyEngine on
 SSLEngine on
 SSLCertificateFile /usr/local/zend/apache2/server.crt
 SSLCertificateKeyFile /usr/local/zend/apache2/host.nopass.key
 </VirtualHost>

除了 httpd-ssl.conf 之外还有以下内容:

 #SSLRandomSeed startup file:/dev/random  512
 #SSLRandomSeed startup file:/dev/urandom 512
 #SSLRandomSeed connect file:/dev/random  512
 #SSLRandomSeed connect file:/dev/urandom 512
 [...]
 Listen *:443
 AddType application/x-x509-ca-cert .crt
 AddType application/x-pkcs7-crl    .crl

 SSLPassPhraseDialog  builtin
 SSLSessionCache        "shmcb:/usr/local/zend/apache2/logs/ssl_scache(512000)"
 SSLSessionCacheTimeout  300
 SSLMutex  "file:/usr/local/zend/apache2/logs/ssl_mutex"

 <VirtualHost _default_:443>

 #   General setup for the virtual host
 DocumentRoot "/usr/local/zend/apache2/htdocs"
 ServerName localhost:443
 ServerAdmin
 ErrorLog "/usr/local/zend/apache2/logs/error_log"
 TransferLog "/usr/local/zend/apache2/logs/access_log"
 SSLEngine on
 SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
 SSLCertificateFile "/usr/local/zend/apache2/server.crt"
 #SSLCertificateFile "/usr/local/zend/apache2/conf/server-dsa.crt"

 SSLCertificateKeyFile "/usr/local/zend/apache2/host.nopass.key"
 #SSLCertificateKeyFile "/usr/local/zend/apache2/conf/server-dsa.key"

 #SSLCertificateChainFile "/usr/local/zend/apache2/conf/server-ca.crt"
 #SSLCACertificatePath "/usr/local/zend/apache2/conf/ssl.crt"
 #SSLCACertificateFile "/usr/local/zend/apache2/conf/ssl.crt/ca-bundle.crt"
 #SSLCARevocationPath "/usr/local/zend/apache2/conf/ssl.crl"
 #SSLCARevocationFile "/usr/local/zend/apache2/conf/ssl.crl/ca-bundle.crl"
 #SSLVerifyClient require
 #SSLVerifyDepth  10
 #<Location />
 #SSLRequire (    %SSL_CIPHER !~ m/^(EXP|NULL)/ \
 #            and %SSL_CLIENT_S_DN_O eq "Snake Oil, Ltd." \
 #            and %SSL_CLIENT_S_DN_OU in "Staff", "CA", "Dev" \
 #            and %TIME_WDAY >= 1 and %TIME_WDAY <= 5 \
 #            and %TIME_HOUR >= 8 and %TIME_HOUR <= 20       ) \
 #           or %REMOTE_ADDR =~ m/^192\.76\.162\.[0-9]+$/
 #</Location>
 #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
 <FilesMatch "\.(cgi|shtml|phtml|php)$">
     SSLOptions +StdEnvVars
 </FilesMatch>
 <Directory "/usr/local/zend/apache2/cgi-bin">
       SSLOptions +StdEnvVars
 </Directory>

 BrowserMatch ".*MSIE.*" \
     nokeepalive ssl-unclean-shutdown \
     downgrade-1.0 force-response-1.0

 CustomLog "/usr/local/zend/apache2/logs/ssl_request_log" \
      "%t %h %SSL_PROTOCOLx %SSL_CIPHERx \"%r\" %b"

 </VirtualHost>

我也在 ZendForum 发了a post。

更新:问题可能不在于 apache 配置,而在于浏览器,我发现网上很多人说这是浏览器配置错误。现在,如果我导航到:

 https://localhost 

我得到了页面的内容,但是如果我尝试连接外部服务(比如我必须使用的 api),错误仍然是一样的。我现在正在检查日志。

【问题讨论】:

尝试更改您的 http-ssl.conf 文件。以 SSLCipherSuite 开头的行 - 将其更改为 SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM:+SSLv3 ***.com/questions/119336/… 试过了,没用。我得到localhost 工作,但localhost/project/page 不起作用,它一直给我这个错误。会不会是浏览器的问题? 好的。如果您从ServerName 行中删除端口号怎么样?:ServerName localhost 【参考方案1】:

答案并不简单。但是我不得不更改证书并将 CommonName 设置为 localhost。然后在 httpd-ssl.conf 中,我必须将虚拟主机设置为使用 10088 端口,而不是 443,因为我必须作为 https 制作的 URL 位于该端口上,所以我必须在 ssl 上激活正确的虚拟主机才能获得它工作。 这是我的 2 美分...

【讨论】:

以上是关于SSL 错误 Zend Framework BoxAPi的主要内容,如果未能解决你的问题,请参考以下文章

Zend Framework:服务器上的致命错误

致命错误:在 Zend Framework + Wamp 中找不到类“Memcache”

Zend Framework 2 安装期间的 Composer CreateProcess 错误代码 0

Doctrine2更新导致Zend Framework 3中的AnnotationRegistry registerLoader错误

Zend Framework 1是否与PHP 7.2兼容?

来自带有 PDO 的存储过程的特定错误代码(在 Zend Framework 2 中)