Terkait dengan #1083, mungkin. requests.get()
standar untuk situs/halaman khusus ini https://docs.apitools.com/2014/04/24/a-small-router-for-openresty.html
menghasilkan:
>>> import requests
>>> requests.get('https://docs.apitools.com/2014/04/24/a-small-router-for-openresty.html')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/api.py", line 55, in get
return request('get', url, **kwargs)
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/api.py", line 44, in request
return session.request(method=method, url=url, **kwargs)
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/sessions.py", line 383, in request
resp = self.send(prep, **send_kwargs)
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/sessions.py", line 486, in send
r = adapter.send(request, **kwargs)
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/adapters.py", line 385, in send
raise SSLError(e)
requests.exceptions.SSLError: [Errno 1] _ssl.c:504: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
Menggunakan request-toolbelt
's SSLAdapter
untuk mencoba berbagai versi ssl, semuanya gagal, tampaknya... lihat traceback berikut.
TLSv1:
>>> adapter = SSLAdapter('TLSv1')
>>> s = requests.Session()
>>> s.mount('https://', adapter)
>>> s.get('https://docs.apitools.com/2014/04/24/a-small-router-for-openresty.html')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/sessions.py", line 395, in get
return self.request('GET', url, **kwargs)
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/sessions.py", line 383, in request
resp = self.send(prep, **send_kwargs)
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/sessions.py", line 486, in send
r = adapter.send(request, **kwargs)
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/adapters.py", line 385, in send
raise SSLError(e)
requests.exceptions.SSLError: [Errno 1] _ssl.c:504: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
SSLv3:
>>> adapter = SSLAdapter('SSLv3')
>>> s = requests.Session()
>>> s.mount('https://', adapter)
>>> s.get('https://docs.apitools.com/2014/04/24/a-small-router-for-openresty.html')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/sessions.py", line 395, in get
return self.request('GET', url, **kwargs)
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/sessions.py", line 383, in request
resp = self.send(prep, **send_kwargs)
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/sessions.py", line 486, in send
r = adapter.send(request, **kwargs)
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/adapters.py", line 385, in send
raise SSLError(e)
requests.exceptions.SSLError: [Errno 1] _ssl.c:504: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
SSLv2:
>>> adapter = SSLAdapter('SSLv2')
>>> s = requests.Session()
>>> s.mount('https://', adapter)
>>> s.get('https://docs.apitools.com/2014/04/24/a-small-router-for-openresty.html')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/sessions.py", line 395, in get
return self.request('GET', url, **kwargs)
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/sessions.py", line 383, in request
resp = self.send(prep, **send_kwargs)
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/sessions.py", line 486, in send
r = adapter.send(request, **kwargs)
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/adapters.py", line 378, in send
raise ConnectionError(e)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='docs.apitools.com', port=443): Max retries exceeded with url: /2014/04/24/a-small-router-for-openresty.html (Caused by <class 'socket.error'>: [Errno 54] Connection reset by peer)
Perhatikan yang terakhir memberikan kesalahan Connection reset by peer
, yang berbeda dari yang lain, tetapi saya cukup yakin SSLv2 tidak didukung oleh server.
Untuk bersenang-senang, saya mencoba melewati beberapa tajuk yang lebih tepat pada permintaan terakhir juga:
>>> headers = {
... 'Accept': u"text/html,application/xhtml+xml,application/xml",
... 'User-Agent': u"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36",
... 'Accept-Encoding': u"gzip,deflate",
... 'Accept-Language': u"en-US,en;q=0.8"
... }
>>> adapter = SSLAdapter('SSLv2')
>>> s = requests.Session()
>>> s.mount('https://', adapter)
>>> s.get('https://docs.apitools.com/2014/04/24/a-small-router-for-openresty.html', headers=headers)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/sessions.py", line 395, in get
return self.request('GET', url, **kwargs)
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/sessions.py", line 383, in request
resp = self.send(prep, **send_kwargs)
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/sessions.py", line 486, in send
r = adapter.send(request, **kwargs)
File "/Users/jaddison/.virtualenvs/techtown/lib/python2.7/site-packages/requests/adapters.py", line 378, in send
raise ConnectionError(e)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='docs.apitools.com', port=443): Max retries exceeded with url: /2014/04/24/a-small-router-for-openresty.html (Caused by <class 'socket.error'>: [Errno 54] Connection reset by peer)
Tidak ada dadu di sana juga. Berikut tampilan info koneksi HTTPS di Chrome di Mac:
Saya tidak yakin, tetapi beberapa googling menunjukkan kemungkinan masalah daftar sandi, yang lebih urllib3, saya pikir?
Saya mencoba memodifikasi DEFAULT_CIPHER_LIST
di pyopenssl
, tetapi mulai mengalami kesalahan impor. Pada titik ini sepertinya ada yang rusak, dan belum ada cara yang tepat untuk memperbaikinya.
Informasi versi:
OSX Mavericks
Python 2.7.5
OpenSSL 0.9.8 tahun 5 Feb 2013 - (dari python -c "import ssl; print ssl.OPENSSL_VERSION"
)
permintaan 2.2.1
permintaan-toolbelt 0.2.0
urllib3 1.8
Sayangnya, ini tidak terkait dengan masalah yang Anda identifikasi, dan sepenuhnya bergantung pada OpenSSL jelek yang dikirimkan oleh OS X secara default. Versi 0.9.8y memiliki beberapa masalah nyata dengan melakukan handshake SSL, dan beberapa server tidak menoleransinya dengan baik. Menggunakan Python 3 pada kotak OS X saya (oleh karena itu menggunakan OpenSSL yang lebih baru) mengungkapkan bahwa tidak ada masalah.
Anda memiliki dua opsi:
env ARCHFLAGS="-arch x86_64" LDFLAGS="-L/usr/local/opt/openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include" pip install PyOpenSSL
.Ah, sepertinya saya mengikuti ikan haring merah - saya tidak berencana untuk menyebarkan apa pun di OSX. Sepertinya saya akan memindahkan pengujian saya ke virtualbox linux. Maaf untuk masalah yang bertele-tele ini!
Tidak perlu meminta maaf, menanyakan pertanyaan itu adalah hal yang benar untuk dilakukan: adalah pengetahuan khusus yang aneh untuk mengetahui bahwa OS X memiliki masalah ini. =)
Oke, ini menyebalkan. Saya membuat gambar Ubuntu 14.04 server 32bit Virtualbox melalui Vagrant dan ini semua masih terjadi kecuali untuk kasus SSLv2, di mana gagal karena protokol tidak termasuk dalam versi OpenSSL di Ubuntu 14.04 (berdasarkan desain, saya percaya - SSLv2 sudah tua dan ketinggalan jaman).
Versi:
Ubuntu 14.04 32bit (melalui kombo Vagrant/Virtualbox)
Python 2.7.6
permintaan == 2.2.1
permintaan-toolbelt==0.2.0
urllib3==1.8.2
EDIT: lupa versi OpenSSL ...
python -c "impor ssl; cetak ssl.OPENSSL_VERSION"
OpenSSL 1.0.1f 6 Jan 2014
TLSv1:
>>> import requests
>>> from requests_toolbelt import SSLAdapter
>>> adapter = SSLAdapter('TLSv1')
>>> s = requests.Session()
>>> s.mount('https://', adapter)
>>> s.get('https://docs.apitools.com/2014/04/24/a-small-router-for-openresty.html')
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/vagrant/.virtualenvs/techtown/local/lib/python2.7/site-packages/requests/sessions.py", line 395, in get
return self.request('GET', url, **kwargs)
File "/home/vagrant/.virtualenvs/techtown/local/lib/python2.7/site-packages/requests/sessions.py", line 383, in request
resp = self.send(prep, **send_kwargs)
File "/home/vagrant/.virtualenvs/techtown/local/lib/python2.7/site-packages/requests/sessions.py", line 486, in send
r = adapter.send(request, **kwargs)
File "/home/vagrant/.virtualenvs/techtown/local/lib/python2.7/site-packages/requests/adapters.py", line 385, in send
raise SSLError(e)
SSLError: [Errno 1] _ssl.c:510: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
SSLv2:
>>> import requests
>>> from requests_toolbelt import SSLAdapter
>>> adapter = SSLAdapter('SSLv3')
>>> s = requests.Session()
>>> s.mount('https://', adapter)
>>> s.get('https://docs.apitools.com/2014/04/24/a-small-router-for-openresty.html')
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/vagrant/.virtualenvs/techtown/local/lib/python2.7/site-packages/requests/sessions.py", line 395, in get
return self.request('GET', url, **kwargs)
File "/home/vagrant/.virtualenvs/techtown/local/lib/python2.7/site-packages/requests/sessions.py", line 383, in request
resp = self.send(prep, **send_kwargs)
File "/home/vagrant/.virtualenvs/techtown/local/lib/python2.7/site-packages/requests/sessions.py", line 486, in send
r = adapter.send(request, **kwargs)
File "/home/vagrant/.virtualenvs/techtown/local/lib/python2.7/site-packages/requests/adapters.py", line 385, in send
raise SSLError(e)
SSLError: [Errno 1] _ssl.c:510: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
SSLv23:
>>> import requests
>>> from requests_toolbelt import SSLAdapter
>>> adapter = SSLAdapter('SSLv23')
>>> s = requests.Session()
>>> s.mount('https://', adapter)
>>> s.get('https://docs.apitools.com/2014/04/24/a-small-router-for-openresty.html')
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/vagrant/.virtualenvs/techtown/local/lib/python2.7/site-packages/requests/sessions.py", line 395, in get
return self.request('GET', url, **kwargs)
File "/home/vagrant/.virtualenvs/techtown/local/lib/python2.7/site-packages/requests/sessions.py", line 383, in request
resp = self.send(prep, **send_kwargs)
File "/home/vagrant/.virtualenvs/techtown/local/lib/python2.7/site-packages/requests/sessions.py", line 486, in send
r = adapter.send(request, **kwargs)
File "/home/vagrant/.virtualenvs/techtown/local/lib/python2.7/site-packages/requests/adapters.py", line 385, in send
raise SSLError(e)
SSLError: [Errno 1] _ssl.c:510: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
Mungkin ini masalah daftar sandi? Atau versi OpenSSL yang digunakan disini masih bermasalah?
Saya benar-benar bersedia meluangkan waktu untuk membantu men-debug ini jika perlu... asalkan kalian memberi saya arahan.
VM sedang mengunduh. Saya tidak dapat mereproduksi ini di ArchLinux.
Jejak tumpukan menunjukkan ini, tetapi saya ingin memastikan: Anda _not_ menggunakan PyOpenSSL tetapi hanya stdlib?
@t-8ch Terima kasih telah melihat ini, saya agak bingung. OpenSSL membuat hidup saya sangat sulit =(
@t-8ch Saya belum menginstal PyOpenSSL jika itu yang Anda tanyakan?
Saya akan berasumsi (mungkin salah) bahwa pip install requests
harus memberi saya semua yang saya butuhkan untuk berhasil memanggil requests.get('...')
pada halaman HTTPS. Yang, tentu saja, sebagian besar berfungsi, hanya saja tidak untuk situs ini karena alasan tertentu.
@jaddison Itu _mostly_ tidak. Sayangnya, library standar Python 2.7s payah dan tidak mendukung beberapa fitur, seperti SNI.
Saya ingin tahu apakah ini SNI ...
@jaddison Ada dua jalur kode yang berbeda di belakang layar. Anda seharusnya tidak perlu mempedulikan itu, tetapi membantu mengetahui saat melakukan debug.
Namun saya sekarang dapat mereproduksi ini di ubuntu. Tapi hanya o Py2. Pada Py3 semuanya baik-baik saja.
Saya menduga @Lukasa benar dan server gagal ketika klien tidak menggunakan SNI.
Itu mengganggu saya bahwa tidak adanya SNI gagal dalam berbagai cara tergantung pada server yang bersangkutan.
Saya memang melihat perubahan antara OpenSSL 1.0.1f dan 1.0.1g (https://www.openssl.org/news/openssl-1.0.1-notes.html):
Add TLS padding extension workaround for broken servers.
EDIT: Ahh, tidak apa-apa - bug seharusnya tidak bervariasi antara Py 2 dan 3, saya pikir.
@jaddison Untuk menguji apakah ini SNI, Anda harus menginstal persyaratan SNI untuk Python 2.
@Lukasa benar. Membandingkan:
$ openssl s_client -connect docs.apitools.com:443
CONNECTED(00000003)
139846853338768:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:s23_clnt.c:762:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 517 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---
$ openssl s_client -connect docs.apitools.com:443 -servername docs.apitools.com
... happy handshake here
Untuk menguraikan: Perintah kedua mengaktifkan fungsionalitas SNI dari openssl s_client
.
Anda dapat a) beralih ke python3 b) menginstal dependensi tambahan.
Stdlib saat ini tidak memiliki cara untuk melakukan SNI.
Terima kasih atas tanggapan cepatnya. Karena tidak ada bug, saya akan menutup ini ... lagi.
Hei, terima kasih teman-teman!! Saya menginstal python3 di mac dan boom saya, itu berfungsi.
Hanya ingin berpadu dan mengatakan bahwa saya mengalami masalah ini pada OS X 10.9.5, Python 2.7.7 dan OpenSSL 0.9.8zc.
Saya dapat memperbaiki masalah jabat tangan saya dengan:
brew install OpenSSL
cryptography
yang ditautkan dengan OpenSSL baru ( env ARCHFLAGS="-arch x86_64" LDFLAGS="-L/usr/local/opt/openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptography
)pip install requests[security]
Terima kasih, @Microserf. Saya cukup banyak menjalankan spesifikasi yang sama (10.9.5, Python 2.7.6 diinstal melalui Homebrew tetapi dikompilasi dengan sistem yang disediakan OpenSSL 0.9.8zg) dan ini adalah seluruh proses saya untuk mendapatkan requests
dan berjalan untuk Django :
brew install openssl
Instal requests
dengan banyak hal SNI , dikompilasi dengan instalasi baru OpenSSL kami. Opsi [security]
cukup menginstal pyopenssl ndg-httpsclient pyasn1
env ARCHFLAGS="-arch x86_64" LDFLAGS="-L/usr/local/opt/openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include" pip install requests[security] urllib3
Dan kami siap melakukannya:
"""
This may or may not be needed. See:
https://urllib3.readthedocs.org/en/latest/security.html#openssl-pyopenssl
"""
# from urllib3.contrib import pyopenssl
# pyopenssl.inject_into_urllib3()
import requests
# r = requests.get(...)
Apakah ada jawaban pasti tentang cara membuatnya berfungsi di ubuntu? Saya mengalami masalah ini, dan sepertinya satu-satunya jawaban di sini menyangkut cara membuatnya berfungsi di Mac. Memutakhirkan seluruh basis kode kami ke python 3 bukanlah suatu pilihan.
Oke, saya mungkin baru saja menjawab pertanyaan saya sendiri. Apa yang saya lakukan bermuara pada:
sudo apt-get install libffi-dev
pip install pyOpenSSL ndg-httpsclient pyasn1
@lsemel terima kasih, itu menyelamatkan saya banyak waktu
@lsemel Apakah Anda yakin? Saya mencobanya di Ubuntu 15.10 dan masih tidak berfungsi dengan Python 2.7.10.
Ia bekerja dengan Python 2.7 di Travis CI:
https://travis-ci.org/playing-se/swish-python
Dapatkan untuk bekerja sekarang! Saya cukup mencopot pyOpenSSL:
pip uninstall pyOpenSSL
Mungkin kita hanya boleh pyopenssl.inject_into_urllib3() jika versi Python kurang dari 2.7.9? pyOpenSSL tampaknya merusak hal-hal di Ubuntu dan Windows jika versi Python adalah 2.7.10.
PyOpenSSL seharusnya tidak merusak apa pun. Jika ya, itu adalah bug yang harus dilaporkan.
Saya harus melihat ini, tetapi apakah ada alasan bagus untuk menyuntikkan pyopenssl ke urllib3 jika versi Python 2.7.9 atau lebih baru?
Saya sedang memikirkan sesuatu seperti ini:
# Check if Modern SSL with SNI support
try:
from ssl import SSLContext
from ssl import HAS_SNI
except ImportError:
# Attempt to enable urllib3's SNI support, if possible
try:
from .packages.urllib3.contrib import pyopenssl
pyopenssl.inject_into_urllib3()
except ImportError:
pass
Ya, sering ada. Misalnya, pada OS X sebagian besar Python menautkan ke sistem OpenSSL, yaitu versi 0.9.8zg. Namun, PyOpenSSL akan menautkan ke OpenSSL yang jauh lebih baru (1.0.2). Itu membuat penggunaan PyOpenSSL menjadi peningkatan keamanan yang substansial.
Selain itu, PyOpenSSL memberi kami akses yang jauh lebih baik ke OpenSSL, memungkinkan kami mengamankannya dengan lebih efektif.
OK, saya telah bermain-main dengan ini sedikit sekarang.
BEKERJA dengan pyopenssl TAPI tidak jika ndg-httpsclient diinstal.
Namun, saya bisa membuatnya bekerja dengan ndg-httpsclient jika saya menghapus pyasn1 memberi saya peringatan ini:
/usr/lib/python2.7/dist-packages/ndg/httpsclient/subj_alt_name.py:22: UserWarning: Error importing pyasn1, subjectAltName check for SSL peer verification will be disabled. Import error is: No module named pyasn1.type
warnings.warn(import_error_msg)
/usr/lib/python2.7/dist-packages/ndg/httpsclient/ssl_peer_verification.py:25: UserWarning: SubjectAltName support is disabled - check pyasn1 package installation to enable
warnings.warn(SUBJ_ALT_NAME_SUPPORT_MSG)
/usr/lib/python2.7/dist-packages/ndg/httpsclient/subj_alt_name.py:22: UserWarning: Error importing pyasn1, subjectAltName check for SSL peer verification will be disabled. Import error is: No module named pyasn1.type
warnings.warn(import_error_msg)
Perilaku yang sama pada Ubuntu 15.10 dan Windows 10 dengan Python 2.7.10 diinstal.
Itu karena tanpa ndg-httpsclient dukungan PyOpenSSL tidak digunakan.
Ya, saya harus menggali mengapa ini berfungsi jika SubjectAltName dinonaktifkan. Ada ide?
Hampir pasti masalahnya adalah Anda menggunakan OpenSSL yang berbeda dalam setiap kasus.
Saya memiliki masalah yang sama pada kotak Ubuntu 14.04 saya dan Python 2.7.11
Ini dari SNI
Apa yang berhasil bagi saya adalah ini:
Saya pikir ada pemeriksaan waktu penginstalan pada urllib3 atau permintaan yang membuat semuanya tidak berfungsi tanpa mencopot pemasangan
@jvanasco apa yang Anda gunakan untuk menginstal paket-paket itu? Saya berasumsi pip. Mengapa Anda menginstal urllib3 dan meminta secara terpisah?
Yah saya membutuhkan urllib3 di virtualenv ... tapi saya menginstalnya untuk mencoba dan mendapatkan persyaratan yang diinstal oleh pip dan easy_install. (Saya menggunakan keduanya)
Saya memiliki pengindeks web dan beberapa url rusak. Saya menulis skrip cepat untuk mencoba yang rusak, dan terus menginstal ulang/menghapus+menginstal paket dalam instruksi urllib3 tentang masalah ssl sampai berhasil.
Pada tanggal 31 Mei 2016, pukul 19.25, Ian Cordasco [email protected] menulis:
@jvanasco apa yang Anda gunakan untuk menginstal paket-paket itu? Saya berasumsi pip. Mengapa Anda menginstal urllib3 dan meminta secara terpisah?
—
Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub, atau matikan utasnya.
Saya masih melihat masalah ini dan saya sudah mencoba solusi yang disarankan.
Saya memperbarui versi python saya ke 2.7.11
Saya menginstal 3 paket tambahan.
Saya mencoba urutan uninstall/instal yang disarankan @jvanasco dan masih mendapatkan SSLError
Juga menggunakan Ubuntu 14.04 sayangnya tidak ada pembaruan OpenSSL jadi saya harus menggunakan solusi yang diposting di sini dan saya tidak beruntung.
Adakah langkah ekstra yang mungkin kalian ambil?
Terima kasih
@Lekinho Saya menemukan bahwa membuat skrip tes pendek yang menguji domain yang saya alami masalah membantu.
itu hanya:
import requests
r = requests.get(bad_url)
print r.__dict__
@Lekinho Anda dapat mengekstrak pyopenssl dari permintaan dalam kode Anda:
try:
from requests.packages.urllib3.contrib import pyopenssl
pyopenssl.extract_from_urllib3()
except ImportError:
pass
@Lekinho Jika Anda masih mengalami masalah ini dengan Python 2.7.11, kemungkinan besar server jarak jauh tidak mendukung pengaturan TLS yang digunakan oleh permintaan. Apakah server yang dimaksud tersedia di internet publik? Jika demikian, dapatkah Anda memberi saya URL-nya?
saya sudah mencoba impor pyopenssl seperti yang disarankan.
Sayangnya ini tidak dapat diakses secara publik.
Namun saya memiliki detail persis tentang versi openSSL yang dimiliki server.
Pada dasarnya, kami menjalankan mesin virtual redhat, saya memiliki openSSL ini ketika semuanya berfungsi: openssl-1.0.1e-42.el6_7.4.x86_64
Kemudian kami melakukan upgrade redhat dan ada pembaruan untuk openssl : openssl-1.0.1e-48.el6_8.1.x86_64
Versi ini selalu memiliki masalah jabat tangan yang buruk saat menggunakan openssl di ubuntu 14.04.
Apakah kalian memiliki URL publik yang dapat saya coba, untuk melihat apakah penyelesaiannya membantu menyelesaikan masalah dan hanya kombinasi unik yang saya miliki itulah masalahnya?
Mesin yang sama baik-baik saja ketika permintaan REST dikirim melalui browser (yaitu tanpa ubuntu openssl )
Terima kasih
Bisakah Anda memberikan output rpm -q --changelog openssl
, tolong?
[ admin@leke-2-2-8-11 ~]$ rpm -q --changelog openssl
Sepertinya @Lekinho menghapus akun github mereka? Untuk orang berikutnya yang memiliki masalah - ada kemungkinan bahwa pemutakhiran OpenSsl atau Python mereka merusak beberapa ikatan c yang dikompilasi. Setiap kali saya memiliki peningkatan seperti itu, saya membuang virtualenv saya atau semua paket dan kemudian membangun yang baru.
@jvanasco saya masih di sini.
Saya bertanya-tanya, apakah Anda memiliki URL publik yang dapat saya gunakan untuk menguji ini? Saya ingin melihat apakah solusinya benar-benar menyelesaikan masalah untuk kasus yang dikonfirmasi (ini berarti saya tidak mengacaukan sesuatu saat mencoba melakukannya)
@Lukasa
bagian dari perubahan antara versi yang berfungsi dan versi yang diperbarui :+1:
Sen Mei 02 2016 Tomáš Mráz [email protected] 1.0.1e-48.1
perbaiki CVE-2016-2105 - kemungkinan meluap dalam pengkodean base64
perbaiki CVE-2016-2106 - kemungkinan overflow di EVP_EncryptUpdate()
perbaiki CVE-2016-2107 - oracle padding dalam AES-NI CBC-MAC yang dijahit
perbaiki CVE-2016-2108 - kerusakan memori di encoder ASN.1
perbaiki CVE-2016-2109 - kemungkinan DoS saat membaca data ASN.1 dari BIO
perbaiki CVE-2016-0799 - masalah memori di BIO_printf
Rab Feb 24 2016 Tomáš Mráz [email protected] 1.0.1e-48
perbaiki CVE-2016-0702 - serangan saluran samping pada eksponensial modular
perbaiki CVE-2016-0705 - bebas ganda dalam penguraian kunci pribadi DSA
perbaiki CVE-2016-0797 - tumpukan korupsi di BN_hex2bn dan BN_dec2bn
Sel 16 Feb 2016 Tomáš Mráz [email protected] 1.0.1e-47
perbaiki CVE-2015-3197 - penegakan ciphersuite SSLv2
nonaktifkan SSLv2 dalam metode TLS generik
Jum 15 Jan 2016 Tomáš Mráz [email protected] 1.0.1e-46
perbaiki kebocoran memori 1-byte dalam parse pkcs12 (#1229871)
mendokumentasikan beberapa opsi dari perintah kecepatan (#1197095)
Kam 14 Jan 2016 Tomáš Mráz [email protected] 1.0.1e-45
perbaiki stempel waktu presisi tinggi di otoritas stempel waktu
Sen 21 Des 2015 Tomáš Mráz [email protected] 1.0.1e-44
perbaiki CVE-2015-7575 - larang penggunaan MD5 di TLS1.2
Jum 04 Des 2015 Tomáš Mráz [email protected] 1.0.1e-43
perbaiki CVE-2015-3194 - verifikasi sertifikat macet dengan parameter PSS yang hilang
perbaiki kebocoran memori CVE-2015-3195 - X509_ATTRIBUTE
perbaiki CVE-2015-3196 - kondisi balapan saat menangani petunjuk identitas PSK
Sel 23 Jun 2015 Tomáš Mráz [email protected] 1.0.1e-42
Memperbarui :
Jadi saya menemukan solusi untuk ini.
Pada dasarnya seorang rekan membaca tentang masalah ini dan melihat beberapa posting tentang dukungan RHEL openssl untuk cipher ECC/ECDH tidak 100% karena alasan apa pun.
Kami mencoba permintaan ke URL dengan secara eksplisit menonaktifkan cipher ECDH (menambahkan negasi dari skrip openssl itu sendiri yaitu openssl s_client -connect 10.85.103.218:8443 -cipher 'DEFAULT:!ECDH')
Kami berhasil terhubung.
Inilah daftar sandi default untuk openssl di ubuntu 14.04
ECDH+ AESGCM:DH+AESGCM :ECDH+AES256:DH+AES256:ECDH+AES128:DH+ AES:ECDH+HIGH :DH+ HIGH:ECDH+3DES :DH+3 DES:RSA+AESGCM :RSA+ AES:RSA+HIGH :RSA +3DES:!aNULL:!eNULL:!MD5
Jadi dengan pengetahuan itu, saya menggunakan pyopenssl untuk mencetak cipher SSL default saya dan secara eksplisit menghapus setiap cipher ECDH dari string. Apakah ini benar di blok untuk mengimpor urllib3 dari paket permintaan (yaitu sebelum mulai membuat permintaan yang sebenarnya) berikut ini sesuatu yang serupa:
https://github.com/kennethreitz/requests/issues/1308
Saya menyadari mungkin ada risiko keamanan untuk tindakan ini, tetapi setidaknya ini membuat kita maju dan menjelaskan lebih banyak tentangnya.
Mengapa sandi khusus itu tampaknya menjadi masalah bagi RHEL, saya tidak tahu.
Saya akan mencoba ketika saya punya lebih banyak waktu untuk melihat perubahan RHEL apa yang mungkin telah memperkenalkan ini dan membaca lebih lanjut tentang tujuannya.
Adakah yang tahu lebih banyak tentang cipher secara umum?
Punya masalah yang sama... ARG...
@lukas-gitl frustrasi tidak akan membantu Anda memecahkan masalah. Memberikan kami informasi tentang lingkungan Anda (sebaiknya beberapa - jika tidak semua - informasi yang kami tanyakan kepada Lekinho di atas) akan membantu.
@sigmavirus24 Maaf. Saya bermaksud memberikan lebih banyak informasi dan kemudian dilacak (karena saya tidak punya waktu untuk ini). Saya menggunakan Ubuntu 14.04, python 2.7.6 dan versi permintaan terbaru di pip. Ini terjadi ketika saya mencoba mengakses sebagai titik akhir API Gateway (mungkin cukup membatasi).
Saya mencoba menghapus virtualenv dan membuatnya kembali tetapi sayangnya itu tidak menyelesaikannya.
Beri tahu saya apa lagi yang Anda butuhkan. Saya beralih ke nodejs untuk sementara waktu tetapi dengan senang hati akan membantu dengan resolusi.
@lukas-gitl Kemungkinan besar server yang Anda hubungi memerlukan sandi yang tidak Anda tawarkan, atau versi TLS yang tidak Anda tawarkan. Ini dapat terkait dengan OpenSSL yang telah Anda instal. Anda juga harus mencoba menjalankan pip install requests[security]
: Anda mungkin mengalami masalah dengan SNI.
Iya, saya juga sudah mencobanya. Biarkan saya menyusun skrip uji cepat di sini sehingga kita berada di halaman yang sama.
virtualenv -p /usr/bin/python2.7 env
sumber env/bin/aktifkan
permintaan pemasangan pip
permintaan pemasangan pip[keamanan]
echo 'permintaan impor' >> test.py
echo 'requests.get("https://API_ID.execute-api.us-west-2.amazonaws.com/ENV/ENPOINT")' >> test.py
python test.py
Dan kesalahan spesifik apa yang Anda lihat?
.../env/local/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:318:
SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
SNIMissingWarning
.../env/local/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
Traceback (most recent call last):
File "test.py", line 2, in <module>
requests.get("https://sbsz8eqowe.execute-api.us-west-2.amazonaws.com/dev/segment_to_s3_webhook")
File ".../env/local/lib/python2.7/site-packages/requests/api.py", line 71, in get
return request('get', url, params=params, **kwargs)
File ".../env/local/lib/python2.7/site-packages/requests/api.py", line 57, in request
return session.request(method=method, url=url, **kwargs)
File ".../env/local/lib/python2.7/site-packages/requests/sessions.py", line 475, in request
resp = self.send(prep, **send_kwargs)
File ".../env/local/lib/python2.7/site-packages/requests/sessions.py", line 585, in send
r = adapter.send(request, **kwargs)
File ".../env/local/lib/python2.7/site-packages/requests/adapters.py", line 477, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: [Errno 1] _ssl.c:510: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure```
Jadi pada dasarnya saya harus memperbarui ke versi python yang lebih baru?
Oke, kedua peringatan tersebut menunjukkan bahwa permintaan Anda sebenarnya tidak menggunakan ekstensi dari permintaan[keamanan]. Ini sangat menyarankan bahwa Python apa pun yang Anda jalankan adalah _bukan_ yang Anda instal di lingkungan virtual Anda: ekstensi permintaan[keamanan] harus menghapus peringatan itu.
@lukas-gitl silakan lihat catatan saya di atas.
Apakah Anda memiliki akses ke server? membandingkan daftar cipher default untuk server dan klien.
Sangat mungkin 1 dari mereka tidak mendukung set cipher pertama di yang lain, maka kesalahannya.
Anda dapat memeriksa cipher default dengan skrip sederhana seperti yang saya gunakan di sini:
sistem impor
impor os
impor ssl
cetak(ssl.OPENSSL_VERSION)
sys.path.insert(1, os.path.abspath(os.path.join(os.getcwd(), 'lib')))
sys.path.append('/usr/local/lib/python2.7/dist-packages')
permintaan impor
dari request.packages.urllib3.contrib impor pyopenssl
pyopenssl.inject_into_urllib3()
cetak pyopenssl.DEFAULT_SSL_CIPHER_LIST
Oke, sekarang aku benar-benar bingung. Pesan kesalahan datang dari lingkungan virtual. Jadi bagaimana itu bisa datang dari sana sementara saya mengeksekusi dari lingkungan python yang berbeda?
Jadi saya mencoba pip install pyopenssl ndg-httpsclient pyasn1
bukannya pip install requests[security]
dan itu berhasil...
Aha, saya menduga pip Anda terlalu tua untuk menangani ekstra.
Ah, sialan. Itu sangat menjelaskan. Terima kasih banyak atas bantuan Anda!
Saya mengalami masalah yang sama di sini, saya harus mengirim permintaan GET dengan kode berikut:
requests.get('https://mdskip.taobao.com/core/initItemDetail.htm?itemId=530444505608&showShopProm=false&queryMemberRight=true&isRegionLevel=false&tmallBuySupport=true&addressLevel=2&sellerPreview=false&isForbidBuyItem=false&cachedTimestamp=1466835924196&offlineShop=false&household=false&tryBeforeBuy=false&isSecKill=false&service3C=false&isApparel=true&isUseInventoryCenter=false&cartEnable=true&isAreaSell=false&callback=setMdskip×tamp=1466841669969&isg=Al9faN3XWRpIf6UEoQ88UH/1b7np0rNm&ref=https%3A%2F%2Fs.taobao.com%2Fsearch%3Fq%3D%25E6%258B%2589%25E5%25A4%258F%25E8%25B4%259D%25E5%25B0%2594%26imgfile%3D%26commend%3Dall%26ssid%3Ds5-e%26search_type%3Ditem%26sourceId%3Dtb.index%26spm%3Da21bo.50862.201856-taobao-item.1%26ie%3Dutf8%26initiative_id%3Dtbindexz_20160625')
sayangnya saya diberi info kesalahan:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/requests/api.py", line 71, in get
return request('get', url, params=params, **kwargs)
File "/Library/Python/2.7/site-packages/requests/api.py", line 57, in request
return session.request(method=method, url=url, **kwargs)
File "/Library/Python/2.7/site-packages/requests/sessions.py", line 475, in request
resp = self.send(prep, **send_kwargs)
File "/Library/Python/2.7/site-packages/requests/sessions.py", line 585, in send
r = adapter.send(request, **kwargs)
File "/Library/Python/2.7/site-packages/requests/adapters.py", line 477, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'SSL23_GET_SERVER_HELLO', 'sslv3 alert handshake failure')],)",)
Saya mencoba brew install openssl, brew upgrade openssl, pip install --upgrade pip, pip install request, pip install request[security], tetapi tidak berhasil.
Namun ketika saya mengetik openssl version
saya mendapat OpenSSL 0.9.8zh 14 Jan 2016
, saya tidak tahu apakah itu baik-baik saja.
Apakah ada orang yang bisa membantu saya dengan itu?
@jschwinger23 Bisakah Anda menjalankan pip install pyopenssl ndg-httpsclient pyasn1
juga?
@Lukasa Terima kasih atas balasan Anda. Saya menegaskan kembali bahwa saya menginstalnya:
$ pip install pyopenssl ndg-httpsclient pyasn1
Requirement already satisfied (use --upgrade to upgrade): pyopenssl in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
Requirement already satisfied (use --upgrade to upgrade): ndg-httpsclient in /Library/Python/2.7/site-packages
Requirement already satisfied (use --upgrade to upgrade): pyasn1 in /Library/Python/2.7/site-packages
tapi kode masih down.
Bagaimanapun, saya menemukan bahwa semuanya berjalan dengan baik di Python3, dan saya senang bisa membuat kode di python3.
Terima kasih banyak.
Mengikuti instruksi di atas tetapi masih mengalami masalah ini
```
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/requests/api.py", line 71, in get
return request('get', url, params=params, **kwargs)
File "/Library/Python/2.7/site-packages/requests/api.py", line 57, in request
return session.request(method=method, url=url, **kwargs)
File "/Library/Python/2.7/site-packages/requests/sessions.py", line 475, in request
resp = self.send(prep, **send_kwargs)
File "/Library/Python/2.7/site-packages/requests/sessions.py", line 585, in send
r = adapter.send(request, **kwargs)
File "/Library/Python/2.7/site-packages/requests/adapters.py", line 477, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'SSL23_GET_SERVER_HELLO', 'sslv3 alert handshake failure')],)",)
ada ide?
``````
@rohanpai Sepertinya Anda tidak memiliki cipher yang tumpang tindih, atau server jarak jauh tidak senang dengan versi yang Anda tawarkan, atau Anda diharapkan memberikan sertifikat klien dan tidak. Sulit untuk memberikan saran yang lebih spesifik. Coba ini untuk menyelidiki masalahnya.
Di ubuntu 14.04LTS saya perlu melakukan ini:
sudo pip install ndg-httpsclient pyasn1 --upgrade
Perhatikan bahwa di Ubuntu tidak mungkin untuk memutakhirkan/menghapus pyopenssl
karena dimiliki oleh OS.
solusi markstrefford bekerja untuk saya di mac os sierra juga
Solusi @ markstrefford juga bekerja untuk saya.
Peringatan bagi siapa saja yang menggunakan OpenSSL 1.1:
Anda juga akan mengalami masalah ini, bahkan ketika memaksa adaptor TLS, ketika server jarak jauh menawarkan Kurva Elliptik sebagai opsi pertama.
Penyebabnya adalah: http://bugs.python.org/issue29697
Hai teman-teman! Saya mengalami masalah yang sama dengan server berikut https://34.200.105.231/SID/Service.svc?wsdl
. Saya sudah mencoba semuanya dan saya melompat dari dan ke 2 kesalahan yang sama:
requests.exceptions.SSLError: ("bad handshake: SysCallError(-1, 'Unexpected EOF')",)
requests.exceptions.SSLError: EOF occurred in violation of protocol (_ssl.c:661)
Ada ide? @Lukasa , saya melihat beberapa masalah dengan Sertifikat, tetapi sepertinya tidak seburuk itu: https://sslanalyzer.comodoca.com/?url=34.200.105.231
Sertifikat biasanya tidak menyebabkan masalah ini: masalah ini disebabkan oleh server yang menggantung pada kami, jadi biasanya ini adalah hasil dari ketidakcocokan cipher suite. Dalam hal ini, itulah yang terjadi seperti yang Anda lihat di sini .
Ini adalah server yang, sejujurnya, tidak boleh diekspos ke internet terbuka. Tidak ada metode aman untuk berkomunikasi dengan server ini: tidak ada, nol. Inilah mengapa jabat tangan gagal: Permintaan hanya menerima suite sandi modern, dan tidak ada suite sandi modern yang tersedia untuk server ini. Opsi terbaik adalah TLS_RSA_WITH_3DES_EDE_CBC_SHA
, opsi yang kami hapus karena rentan terhadap serangan praktis pada transfer data skala besar.
Jika server ini milik Anda, harap tingkatkan ke implementasi TLS yang lebih baik atau ubah pengaturannya. Jika tidak, saran pertama saya adalah mempertimbangkan kembali untuk berbicara dengan server ini. Jika harus, maka Anda dapat menggunakan kode di sini , tetapi saya sangat menyarankan Anda menekan operator server untuk memperbaiki kekacauan ini.
@Lukasa -- terima kasih telah bekerja melalui ini dengan semua orang! Saya sudah membaca dan mencoba sebagian besar dari ini
Saat menjalankan skrip di Windows, semuanya berfungsi.
Saat menjalankan skrip di OSX, terima:
raise SSLError(e, request=request)
requests.exceptions.SSLError: ("bad handshake: SysCallError(-1, 'Unexpected EOF')",)
Saya tidak yakin itu bukan server itu sendiri, tetapi akan sangat menghargai bantuan tambahan apa pun untuk mengonfirmasi dan/atau mengeluarkan saya dari lubang kelinci ini. Akan menjadi kemenangan besar untuk membuatnya bekerja.
env ARCHFLAGS="-arch x86_64" LDFLAGS="-L/usr/local/opt/openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include" pip install --force-reinstall --no-cache-dir {PACKAGE}
Saya tidak 100% yakin bahwa menginstal melawan openssl benar-benar melakukan apa pun, karena tampaknya bertindak sama dengan menginstal tanpa (seperti, kecepatan dan pengiriman pesan semuanya tampak sama)
Seperti yang diarahkan di utas lain (di atas) menghubungkan langsung melalui openSSL appears
untuk menjadi bahagia?
openssl s_client -connect XXX.102.7.147:443
CONNECTED(00000003)
write:errno=0
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 198 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1493384325
Timeout : 7200 (sec)
Verify return code: 0 (ok)
Extended master secret: no
---
Uh...OpenSSL secara teknis baik-baik saja, tetapi OpenSSL tidak menegosiasikan sandi (yaitu, tampaknya telah menegosiasikan SSL_NULL_WITH_NULL_NULL
. Dapatkah Anda menjalankan ssllabs terhadap server Anda dan memeriksa suite sandi apa yang didukungnya?
@Lukasa Tidak terekspos di internet, apakah ada beberapa penyelidikan baris perintah yang dapat saya jalankan yang dapat memberikan wawasan yang memadai untuk Anda?
Anda bisa mencoba cipherscan .
@Lukasa menginstalnya ... aktingnya miring (tidak ada output, menontonnya) ... akan memposting kembali jika saya menemukan sesuatu yang dapat diteruskan. Terima kasih atas bimbingannya!
@Lukasa terima kasih banyak atas bantuan Anda - tidak pernah benar-benar membuat cipherscan berfungsi - tetapi memperbaiki masalah kami. Itu tidak ada hubungannya dengan semua ini, dan merupakan ketidakcocokan IP konyol di lingkungan kami ... pelajaran yang didapat! Terima kasih ...
Tidak ada masalah sama sekali, senang Anda menyelesaikannya!
streamlink -l debug h ttpstream://https : //www.arconaitv.us/stream.php ?id=43 terburuk
[cli][info] streamlink berjalan sebagai root! Hati-hati!
[cli][debug] OS: Linux-4.14.0-041400-generic-x86_64-with-Ubuntu-14.04-trusty
[cli][debug] Python: 2.7.6
[cli][debug] Tautan aliran: 0.13.0+27.g2ff314c
[cli][debug] Permintaan(2.19.1), Socks(1.6.7), Websocket(0.48.0)
[cli][info] Menemukan plugin yang cocok http untuk URL h ttpstream://https :// www.arconaitv.us/stream.php?id=43
[plugin.http][debug] URL= https://www.arconaitv.us/stream.php?id=43; params={}
[cli][info] Aliran yang tersedia: live (terburuk, terbaik)
[cli][info] Pembukaan streaming: live (http)
[cli][debug] Pra-buffering 8192 byte
[cli][info] Pemain pemula: /usr/bin/vlc
[cli][debug] Menulis aliran ke output
[cli][info] Streaming berakhir
[cli][info] Menutup aliran yang sedang dibuka..
mencoba tetapi tidak berhasil
atlast membuatnya bekerja tvplayer di pc lokal. saya menginstal tinyproxy di pc lokal saya tetapi di vps httpproxy xxxx tidak berfungsi.
apakah tinyproxy ok atau saya perlu server proxy lain untuk dipasang di pc lokal saya.
Hai @maanich , ini tampaknya tidak terkait langsung dengan masalah ini, atau menjadi laporan kerusakan untuk Permintaan yang merupakan tujuan pelacak masalah ini. Jika Anda memiliki pertanyaan tentang konfigurasi sistem, pertanyaan itu sebaiknya dijawab pada platform seperti StackOverflow . Terima kasih!
streamlink --https-proxy " http://8xxxx :8000/" --tvplayer-email [email protected] --tvplayer-password vcvdf3 --http-no-ssl-verify https://tvplayer.com/watch /itv terbaik --player-no-close --stdout | /var/tmp/youtube/ffmpeg -y -i pipe:0 -vcodec copy -acodec copy -flags -global_header -hls_flags delete_segments -hls_time 10 -hls_list_size 6 /mnt/hls/arc.m3u8
ffmpeg versi 4.0-statis https://johnvansickle.com/ffmpeg/ Hak cipta (c) 2000-2018 pengembang FFmpeg
dibangun dengan gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
konfigurasi: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 -- aktifkan-libxml2 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libfreetype --enable-libmp3lame -- aktifkan-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable -libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg
libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
libpostproc 55. 1.100 / 55. 1.100
Streamlink [konsol][info] berjalan sebagai root! Hati-hati!
[konsol][info] Ditemukan plugin yang cocok tvplayer untuk URL https://tvplayer.com/watch/itv
Kesalahan: Tidak dapat URL terbuka: https://live.tvplayer.com/stream.m3u8?id=204&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cCo6XC9cL2xpdmUudHZwbGF5ZXIuY29tXC9zdHJlYW0ubTN1OD9pZD0yMDQiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE1MjkwNTc0OTR9LCJJcEFkZHJlc3MiOnsiQVdTOlNvdXJjZUlwIjoiNjIuMjEwLjE0Mi42NlwvMzIifX19XX0_&Signature=mHOteYcUu4QsbGD n0e ~ 7meDUGT8VN7bVOBAHa-0Mk6ROA9XHYx3aIAZMAo3dFjOGuWk-3MszJzRFHdv ~ -CCsmX3D8XQa2zvzfuIWfMAT ~ yDshroXBN25iW6ZJ0-7lGla00jMTUpm5sW-uDy18OkiBWgGvDVas2Lz-EW ~ 5-LTw2YWvEpqkvRB9OpcsHJj9RRQLuDVjwYKXwKvHTJmB1J ~sGE3aigaL7AZyBaIAUMcpk-xYMpDuPV9BsBN9AT397lFfRPFt155u~yeBHZ4JlUN2GINUBt0-CzGuYVq3dsO kYYEZJo9cQTVhArpo7ek03VbDP5egtCM8obN-63EkA_Klien
pipe:0 : Data tidak valid ditemukan saat memproses input
mohon saran dan server proxy apa yang bagus untuk streamlink jika ada
Komentar yang paling membantu
Sayangnya, ini tidak terkait dengan masalah yang Anda identifikasi, dan sepenuhnya bergantung pada OpenSSL jelek yang dikirimkan oleh OS X secara default. Versi 0.9.8y memiliki beberapa masalah nyata dengan melakukan handshake SSL, dan beberapa server tidak menoleransinya dengan baik. Menggunakan Python 3 pada kotak OS X saya (oleh karena itu menggunakan OpenSSL yang lebih baru) mengungkapkan bahwa tidak ada masalah.
Anda memiliki dua opsi:
env ARCHFLAGS="-arch x86_64" LDFLAGS="-L/usr/local/opt/openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include" pip install PyOpenSSL
.