首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自签名证书在NGinx/PHP上造成问题

自签名证书在NGinx/PHP上造成问题
EN

Server Fault用户
提问于 2015-06-17 11:20:02
回答 2查看 1.1K关注 0票数 0

我刚刚将我的Debian 7,Nginx 1.6.2,PHP 5.4.39升级到Debian 8,Nginx 1.6.2,PHP5.6.9。

有一个客户关系管理系统运行在该服务器上,我们过去通过PHP、EspoCRM发送电子邮件,而它使用的是ZendFramwork2电子邮件(通过服务器2发送,通过雷鸟发送,运行得很好)。

直到升级之后才能正常工作。现在我有个错误说:

代码语言:javascript
复制
500 unable to connect via tls

因此,稍微搜索一下CRM并没有显示任何内容,而是指向上面堆栈(NGinx/PHP?)上的自签名证书和/或其他东西。

知道从哪里开始挖吗?在我的CRM服务器中,我没有任何错误日志(猜这是CRM吞没的)。

我也没有在syslog或maiml服务器的authlog中看到任何东西。

编辑:添加信息:

phpinfo ()

代码语言:javascript
复制
Registered Stream Socket Transports tcp, udp, unix, udg, ssl, sslv3, tls, tlsv1.0, tlsv1.1, tlsv1.2
curl   
SSL     Yes
SSL Version     OpenSSL/1.0.1k  
imap 
SSL Support     enabled  
openssl
OpenSSL support     enabled OpenSSL  
Library Version     OpenSSL 1.0.1k 8 Jan 2015 OpenSSL Header Version  
OpenSSL 1.0.1k 8 Jan 2015  Directive    Local Value Master Value  
openssl.cafile  no value    no value openssl.capath no value    no value     
Phar  
OpenSSL support     enabled  

我使用了Debian 7中的旧配置文件(NGinx是同一个版本--我在D7上使用了一个后端)。

服务器和软件:

服务器A:邮件服务器,Debian 6,后缀,自签名证书

服务器B: Debian 8,Nginx,PHP,EspoCRM -我选择了TLS,因为它在我的本地PC上运行,在Debian 7到8升级之前就已经开始工作了。

本地电脑: Kubuntu,Thunderbird,邮件可以通过TLS发送和接收。

EN

回答 2

Server Fault用户

发布于 2016-11-18 18:15:12

据我所知,PHP5.6不允许接受、验证或处理自签名证书.

http://php.net/manual/en/migration56.openssl.php

您必须禁用对等名和对等名的验证。

代码语言:javascript
复制
$streamContext = stream_context_create([
            'ssl' => [
                'verify_peer'      => false,
                'verify_peer_name' => false
            ]
        ]);

如果试图在一个包中(这似乎是由设计完成的)来完成这一任务,就不能仅仅在php.ini中设置一些标志,或者其他类似的简单方法。

票数 0
EN

Server Fault用户

发布于 2016-11-18 19:48:22

500无法通过tls连接

这在识别问题所在方面没有多大帮助--但它肯定在代码中的某个地方,您可能没有维护它,因此修改代码以使其工作应该是最后的手段。

知道是什么操作触发了这个错误是很有用的。

由于您的清单中提到自签名证书的唯一位置是邮件服务器,所以我将假设这就是造成此处问题的原因。

您所需要做的就是将自签名证书添加到应用程序所在主机上的已接受权限。假设(再次) MTA使用SMTPS:

代码语言:javascript
复制
openssl s_client -showcerts -connect servera.example.com:465 </dev/null

会给你证书链。将输出复制到(例如) /etc/ssl/certs/lbutlr_local.crt中,然后运行update-ca-certificates

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

https://serverfault.com/questions/699627

复制
相关文章

相似问题

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