使用 bitnami 镜像进行全新安装后,我按照指示设置邮件程序。
它看起来像这样:
[
{
"key": "stmp-mailer",
"type": "smtp",
"options": {
"host": "server",
"user": "user" ,
"port": 587,
"password": "passwd",
"protocol": "tls"
}
}
]
此后,如果我尝试从测试应用程序发送邮件,我会收到以下消息:
EXCEPTION: (RuntimeException) stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed at [<arcanist>/src/error/PhutilErrorHandler.php:263]
arcanist(head=stable, ref.stable=ac54d61d7af2), phabricator(head=stable, ref.stable=86ad69863930)
经过一番搜索,我发现我可以告诉 Arcanist绕过证书。但是,我无法使用 arcanist 运行几乎任何东西。示例:
$ arc set-config https.blindly-trust-domains '["example.com"]'
[2020-12-14 18:48:55] EXCEPTION: (TypeError) Argument 1 passed to ArcanistBlindlyTrustHTTPEngineExtension::setDomains() must be of the type array, string given, called in /opt/bitnami/arcanist/scripts/arcanist.php on line 304 at [<arcanist>/src/configuration/ArcanistBlindlyTrustHTTPEngineExtension.php:10]
arcanist(head=stable, ref.stable=ac54d61d7af2)
#0 ArcanistBlindlyTrustHTTPEngineExtension::setDomains(string) called at [<arcanist>/scripts/arcanist.php:304]
但如果我运行 get-config,也会发生同样的情况
这次崩溃是正常现象还是某种配置错误?
秘法师版本:秘法师 ac54d61d7af20f5d65ba889974f23a86bfb6cd57(2020年10月19日)
- 更新 -
运行以下命令:
openssl s_client -starttls smtp -connect MAIL_SERVER:587
产生几个错误,随后是证书
erify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 CN = XXX
verify error:num=21:unable to verify the first certificate
然后我尝试将证书提取到 .pem 文件中,然后使用 update-ca-certificates 添加它,这似乎有效。但我看不出有什么区别。
答案1
尝试测试各个组件。您可以直接使用 openssl 来排除 arcanist 是问题的根源:
openssl s_client -starttls smtp -connect example.com:587 -servername example.com
验证目标 TLS 证书是否设置正确并从本地计算机进行验证,然后检查您的服务器是否也可以验证它。每个步骤的失败都指向不同的问题。目标 SMTP 服务器的证书可能已过期或无效,或者您的服务器可能缺少允许您验证 SMTP 服务器正在使用的根证书。
如果一切正常,您会在输出中看到以下信息:
Verify return code: 0 (ok)
如果两个测试都显示正常,那么您可能必须开始向 arcanist 添加调试代码,以查看是否可能导致问题。