
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 を使用してほとんど何も実行できません。例:
$ 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)
両方のテストで OK と表示された場合は、arcanist にデバッグ コードを追加して、それが問題の原因であるかどうかを確認する必要があるかもしれません。