首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zend-Server8.5,未成功更新OpenSSL

Zend-Server8.5,未成功更新OpenSSL
EN

Stack Overflow用户
提问于 2016-02-29 18:48:18
回答 1查看 880关注 0票数 1

在这个主题上做了非常广泛的调查,但仍然没有设法迫使新版本的OpenSSL在OSX上使用ZendServer v.8.5.2。

史前:默认情况下,ZendServer和El使用openssl-0.9.8zc。新版本的PHP5.6.15不能正常使用这个版本的OpenSSL和Composer-PHP。我犯了错误:

无法找到有效的CA证书文件。必须设置有效的“cafile”选项。SSL/TLS保护需要一个有效的CA证书文件。..。 Composer\Downloader\TransportException 配置的cafile无效或无法读取。

我用Brew更新了版本,然后确保它在系统中正确注册:

代码语言:javascript
复制
 brew unlink openssl && brew link --force openssl

但实际上,ZendServer似乎在二进制目录中拥有它自己的openssl的本地副本:

/usr/local/zend/bin/openssl

openssl.cafile是空的,所以我决定将它指向新的路径,这是一些教程中推荐的: usr/local/etc/openssl/cert.pem

结果::

系统似乎指向了openssl的适当版本:

代码语言:javascript
复制
$ openssl version
OpenSSL 1.0.2f  28 Jan 2016
$ openssl version -d
OPENSSLDIR: "/usr/local/etc/openssl"

同时,which指向zend的OpenSSL版本:

代码语言:javascript
复制
$ which -a openssl
/usr/local/zend/bin/openssl
/usr/local/bin/openssl
/usr/bin/openssl

根据我的系统中不再存在的路径,PHP似乎仍然有旧的默认配置:

代码语言:javascript
复制
$ php -i | grep openssl
Configure Command =>  './configure'  '--prefix=/usr/local/zend' '--with-config-file-path=/usr/local/zend/etc' '--with-config-file-scan-dir=/usr/local/zend/etc/conf.d' '--disable-debug' '--enable-inline-optimization' '--disable-all' '--enable-libxml' '--enable-session' '--enable-spl' '--enable-xml' '--enable-hash' '--enable-reflection' '--with-pear' '--with-apxs2=/usr/local/zend/apache2/bin/apxs' '--with-layout=GNU' '--enable-filter' '--with-pcre-regex' '--with-zlib' '--enable-simplexml' '--enable-dom' '--with-libxml-dir=/usr/local' '--with-openssl=/usr/local/openssl-0.9.8zc' '--enable-pdo' '--with-pdo-sqlite' '--with-pdo-mysql=mysqlnd' '--with-libedit' '--with-pdo-pgsql' '--with-iconv' '--with-sqlite3' '--disable-phar' '--enable-xmlwriter' '--enable-xmlreader' '--enable-mysqlnd' '--enable-json' 'CC=gcc' 'CFLAGS=-fPIC '-O2' '-pipe' '-g' '-fno-common' '-g'' 'CPPFLAGS=-fPIC 'CXXFLAGS=-fPIC 'CXX=g++' 'LDFLAGS='
openssl
Openssl default config => /usr/local/openssl-0.9.8zc/ssl/openssl.cnf
openssl.cafile => /usr/local/etc/openssl/cert.pem => /usr/local/etc/openssl/cert.pem
openssl.capath => no value => no value

I还没有找到任何方法来更改 Zend 8.5.2中默认的Zend的PHP配置,并将其指向OSX.中的新鲜OpenSSL。

Composer仍然抛出相同的错误,无法工作。我到处爬StackOverflow,还没有找到解决方案,这在我的情况下是可行的。任何帮助都将不胜感激。

谢谢!

答:在编译PHP时,这些库似乎被内置到PHP中,因此升级SSL文件不会对产生任何影响,除非PHP是重新编译的。在我看来,除非下载更新版本(没有更新版本),否则无法在OpenSSL中更新ZendServer库。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-03 12:54:06

经过几天的调查,如果不重新编译PHP和lib,似乎就无法更新OpenSSL for PHP ZendServer。所以这个问题似乎是无法回答的。做这件事没有简单的方法。您仍然拥有OpenSSL的系统版本,这与用PHP预编译的版本不同。

我放弃了在OpenSSL中升级PHP的想法,因为它是内置于ZendServer本身的。相反,我回过头来处理我的信任和ZendServer设置,所以它在OpenSSL的旧版本中起着最少的作用。

在某些情况下,它也可能有所帮助,而无需重新安装:手动更新证书

  1. cacert.pem下载的http://curl.haxx.se/ca/cacert.pem
  2. cacert.pem复制到'/usr/local/zend/etc/ssl/certs/'
  3. 修改CURL配置( -> CURL)并更改:

curl.cainfo =‘/usr/local/zend/etc/ssl/certs/acacert.pem’

  1. 重新启动PHP并检查CURL是否可以从HTTPS URL中读取。

更多信息可以在文章在Mac上修复过期的中间证书中找到。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35707209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档