web-dev-qa-db-ja.com

テレグラムボットSSLエラー:SSLエラー{エラー:1416F086:SSLルーチン:tls_process_server_certificate:証明書の検証に失敗しました}

私は無料のSSLを暗号化しましょう(私のホストプロバイダーはデフォルトでそれをサポートしています)、私はsslshopper.com(唯一の警告は:The certificate is not trusted in all web browsers. You may need to install an Intermediate/chain certificate to link it to a trusted root certificate. Learn more about this error. The fastest way to fix this problem is to contact your SSL provider.)と https://www.geocerts.com)で私のサイトをチェックしました/ ssl_checker その結果、私のサイトはCertificate Chain Completeを除くすべてのテストに合格しました。だから私は問題が証明書にあるとは思わない、私が知っているように電報は自己署名証明書を受け入れる。

https://core.telegram.org/bots/samples/hellobot でテレグラムサンプルボットを使用しようとしましたが、Webhook URLを設定した後、 https: //api.telegram.org/bot [my-token]/getWebhookinfo

結果は次のとおりです。

{ "ok": true, "result": { "url": "https://itest.gigfa.com/tlg1/tlg1.php", "has_custom_certificate": false, "pending_update_count": 17, "last_error_date": 1521140994, "last_error_message": "SSL error {337047686, error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed}", "max_connections": 40 } }

ボットはまったく機能しません。

4
Mohammad Salehi

はい、問題は証明書にあります。

GetWebHookInfoのエラー:

"last_error_message":"SSL error {337047686, error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed}"

テレグラムは、証明書チェーン全体が必要であると言っていますか(CAバンドルまたはフルチェーン証明書とも呼ばれます)。

証明書を確認する方法:

SSL Labs SSL Server Test サービスを使用して、証明書を確認できます。

次の例のようにURLを渡して、valde.ciをホストに置き換えます。

https://www.ssllabs.com/ssltest/analyze.html?d=valde.ci&hideResults=on&latest

「チェーンの問題:不完全」が表示された場合は、完全なチェーン証明書を提供していません。

直し方:

SSL証明書プロバイダーの完全なチェーン証明書をダウンロードして、Webサーバーにインストールします。

使用しているサービスがわかりませんが、私の例では gunicorn SSL証明書によって送信されたca-bundleファイルを使用して ca-certs を追加することを解決しました次の例のように、SSL構成のプロバイダー(私の場合は Namecheap Comodo ):

ca_certs = "cert/my-service.ca-bundle"

詳細情報: @ martini この回答 スレッド および FIX:Telegram Webhooks Not Working 投稿。

6
valdeci