質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

Q&A

解決済

1回答

2124閲覧

CentOS7・Python 3.6でSSLエラーが発生する

stmkza

総合スコア478

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

0グッド

0クリップ

投稿2018/03/26 04:21

編集2018/03/26 05:36

#原因がわかったので新しく質問しました
CentOS7にインストールしたPython3.6でSSL通信をするライブラリを使ったのですが、その時エラーが出て、通信ができません。

どうやったら解決できるか教えてください。

#環境

  • CentOS Linux release 7.4.1708 (Core)
  • Python 3.6.4(IUSからyumでpython36uをインストール)
  • ConoHaのメモリ512MBプラン

#試したこと

  • OSの再インストール
  • update-ca-trustを実行
  • OpenSSLのアップデート
  • cURLがNSSを使うようになっていたので、OpenSSLを使うようにコンパイル
  • 接続先がmacのcURLからは正常にアクセスできることを確認

#発生するエラー

File "/usr/lib/python3.6/site-packages/thrift/transport/THttpClient.py", line 141, in _f result = f(*args, **kwargs) File "/usr/lib/python3.6/site-packages/thrift/transport/THttpClient.py", line 181, in flush self.__http.endheaders() File "/usr/lib64/python3.6/http/client.py", line 1234, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/usr/lib64/python3.6/http/client.py", line 1026, in _send_output self.send(msg) File "/usr/lib64/python3.6/http/client.py", line 964, in send self.connect() File "/usr/lib64/python3.6/http/client.py", line 1400, in connect server_hostname=server_hostname) File "/usr/lib64/python3.6/ssl.py", line 407, in wrap_socket _context=self, _session=session) File "/usr/lib64/python3.6/ssl.py", line 814, in __init__ self.do_handshake() File "/usr/lib64/python3.6/ssl.py", line 1068, in do_handshake self._sslobj.do_handshake() File "/usr/lib64/python3.6/ssl.py", line 689, in do_handshake self._sslobj.do_handshake() ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:777)

最後に実行してからしばらく時間をおくと、下のエラーが出て、もう1度実行すると上のエラーになります

File "/usr/lib/python3.6/site-packages/thrift/transport/THttpClient.py", line 141, in _f result = f(*args, **kwargs) File "/usr/lib/python3.6/site-packages/thrift/transport/THttpClient.py", line 181, in flush self.__http.endheaders() File "/usr/lib64/python3.6/http/client.py", line 1234, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/usr/lib64/python3.6/http/client.py", line 1026, in _send_output self.send(msg) File "/usr/lib64/python3.6/http/client.py", line 964, in send self.connect() File "/usr/lib64/python3.6/http/client.py", line 1400, in connect server_hostname=server_hostname) File "/usr/lib64/python3.6/ssl.py", line 407, in wrap_socket _context=self, _session=session) File "/usr/lib64/python3.6/ssl.py", line 814, in __init__ self.do_handshake() File "/usr/lib64/python3.6/ssl.py", line 1068, in do_handshake self._sslobj.do_handshake() File "/usr/lib64/python3.6/ssl.py", line 689, in do_handshake self._sslobj.do_handshake() ConnectionResetError: [Errno 104] Connection reset by peer

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

たんに接続できない、と言っているようです。

本当にその手順で相手と接続できるか確認してみてください

投稿2018/03/26 04:47

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

stmkza

2018/03/26 04:54 編集

curlで接続してみましたが、ちゃんと接続できました。 CentOSに入っているcurlがなぜかNSSを使っていてエラーになったのですが、 MacのOpenSSLを使っているcurlからはアクセスできました。 (エラー:NSS error -5938 (PR_END_OF_FILE_ERROR))
y_waiwai

2018/03/26 04:56

そのCentOSからの接続でエラーにならないようにしないとダメなんじゃ。
stmkza

2018/03/26 04:58

わかりました。cURLをソースからコンパイルして、OpenSSLを使うようにしてみます。
y_waiwai

2018/03/26 05:00

そういうはなしじゃないと思うけど。。
y_waiwai

2018/03/26 05:13

まさにそれがこの質問のようになっている原因なんでしょう。 それを解決しないと、この質問も解決しないでしょうね
y_waiwai

2018/03/26 05:18

別の問題になったので、べつに質問を立ち上げたほうがいいような気もしますが、、 そのエラーになる場合のレスポンスかエラーメッセージを上げてみてください
stmkza

2018/03/26 05:23

わかりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問