私は開発サーバーで問題を抱えていました。cURL は HTTP とは完全に連携しますが、HTTPS とは正しく機能しません。異なるプロトコルを使用したまったく同じリソースであっても (テストのために、両方の HTTP を使用して google.com を要求しています)。および HTTPS)。
返される cURL エラーは 35 です。
SSL/TLS ハンドシェイクのどこかで問題が発生しました。
私はソリューションのためにWebとSOをくまなく調べましたが、それらはすべてCURLOPT_SSL_VERIFYPEERをfalseに設定するか、証明書ファイルをダウンロードしてCURLOPT_CAINFOをそのパスに設定し、これも何も変更しませんでした。
証明書を設定するときは、このチュートリアルとこのチュートリアルの指示に従い、要求しているリソースの証明書のダウンロードと、証明書バンドルのダウンロードの両方を試みました。
また、CURLOP_PORTを明示的に443に設定しようとしました。質問を完全にするために、設定した他のオプションはCURLOPT_VERBOSE = true、CURLOPT_RETURNTRANSFER = true、およびCURLOPT_SSL_VERIFYHOST = 2です(1と2のすべての組み合わせとVERIFYPEERの両方をtrueにしましたおよび偽)。phpinfo()
また、OpenSSL があり、有効になっていることも確認しました。
前回の実稼働サーバーで完全に機能した多くの古いコードを使用しているため、このコードは以前にも機能していました。しかし、そのホスティングは共有ホスティングであり、そこでの構成のほとんどを知りません。