SSL: CERTIFICATE_VERIFY_FAILED websocketをVPSサーバー 対処方法 BTCFXbot BitFlyerAPI
お名前デスクトップのVPSサーバーを使用して、ビットコインの自動botを運用しています。これまでビットフライヤーの公式APIのtickerを使用していましたが、より早い動きに対応するため、RealtimeAPIをwebsocketで購読する手順を採用しました。
参考までにwebsocketでリアルタイムデータを吐き出しただけのコードです。SFDbotに対抗したかったので。。。(もう賞味期限切れですが。。。)
自前のパソコンでコードを走らせたところ、Realtimeにデータが流れていたので、そのまま仮想サーバーにコピペしたのですが、動きませんでした。
SSL: CERTIFICATE_VERIFY_FAILEDってなんやねん?
よくわかりませんが、SSHの証明辺りの不具合だそうです。
pythonのバージョンアップやサーバーの再起動、windowsアップデートといろいろ試したのですが、どれも効果なく、このままでは仮想サーバーでwebsocketが使えません。
諦めかけたところ素晴らしいサイトを見付けたので、紹介します。
Windows環境下ではSSL通信の際に、適切なpemファイルを利用していないそうです。
そこでシステム環境変数に『SSL_CERT_FILE』を新規作成し、pythonディレクトリ内のcacert.pemのPATHを変数値としてコピペしました。
すると、エラーもなく動き始めました。
コントロールパネル > システムとセキュリティ > システム >システムの詳細
システム環境変数
変数名:SSL_CERT_FILE
変数値:cancert.pemのアドレス
cancert.pemはpythonのフォルダ内にあります。
このエラー対応に相当時間食らいました。
同じ悩みの方の参考になれば幸いです。