【发布时间】:2016-09-05 19:37:50
【问题描述】:
我是 SSL 主题的新手。
我正在尝试通过我的网站(使用 Laravel 4.2 构建)发送电子邮件,它给了我这个错误:
stream_socket_enable_crypto():SSL 操作失败,代码为 1。OpenSSL 错误消息: 错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败
如果我以 root 用户在服务器中运行此命令:
openssl s_client -connect mail.mywebsite.com -starttls smtp
它显示了正确的证书并在最后给了我这个答案:
验证返回码:0(ok)
但是如果我和另一个用户一起运行这个命令:
苏我的用户
openssl s_client -connect mail.mywebsite.com -starttls smtp
它显示了一个不同的证书,最后给了我这个答案:
验证返回码:18(自签名证书)
如果我运行 top -c 我会看到我的 php 进程使用 myuser 和 php-cgi 运行,并且由于 myuser 的证书错误,因此不会发送电子邮件。
谁能帮帮我?
【问题讨论】:
-
请检查
openssl是否相同,即相同的路径。还要检查openssl version -V中的 OPENSSLDIR 设置,并确认它们都指向相同的路径,并且非特权用户具有读取 OPENSSLDIR/certs 中文件的正确权限。