[PYTHON] Que faire si vous obtenez "(35, 'Erreur de connexion SSL')" dans pycurl (l'un d'entre eux)

Lorsque la machine hôte a exécuté un script comprenant pycurl sur la série python2 de CentOS 6.X, pycurl.error: (35, 'SSL connect error') A été sortie. .. .. Ah, l'accès SSL est une erreur. ..

Le mystère que des scripts similaires fonctionnent dans l'environnement de préparation ... J'ai fait des recherches sur diverses choses en me demandant: «Je ne connais pas vraiment la différence» ou «Est-il possible de l'utiliser avant?»

Vérifiez en mode interactif comme suit

python


import pycurl
c = pycurl.Curl()
c.setopt(pycurl.URL, 'https://XXXX')
c.setopt(pycurl.VERBOSE, True)
c.perform()

Mauvais journal dans un mauvais environnement (j'ai décidé que c'était la cause) ---- Ce qui suit est un extrait ----

* NSS error -5938
* Closing connection #0
* SSL connect error

Journal de type OK (je l'ai jugé OK parce que ↓ est apparu)

----- Ce qui suit est un extrait -----

< HTTP/1.1 200 OK

ici, Hmmm, je me demande si pycurl lui-même est mauvais, etc. Ça a l'air bien. (J'ai oublié comment vérifier)

Je me demande si c'est la version curl en premier lieu.

yum info libcurl

C'est le même. .. ..

Je ne savais pas ce qui n'allait pas Enfin ici ↓ log

* NSS error -5938

Renseignez-vous.

Qu'est-ce que NSS? ..

Je suis ignorant, quand je regarde NSS, https://ja.wikipedia.org/wiki/Network_Security_Services Il s'avère que c'est une bibliothèque SSL.

Hmm? Est-ce que quelque chose ne va pas? Alors si tu regardes plus loin http://www.at-link.ad.jp/topics/news/news-20151105.html Atteindre.

Il semble qu'il existe une vulnérabilité pour le moment, alors vérifiez la version.

rpm -q nss nss-util nspr

nss-3.16.2.3-3.el6_6.x86_64
nss-util-3.16.2.3-2.el6_6.x86_64
nspr-4.10.6-1.el6_5.x86_64

C'est un gars vulnérable ...

Je pense que je vais le vérifier de la même manière dans un environnement où le script peut être exécuté normalement.

rpm -q nss nss-util nspr

nss-3.21.0-8.el6.x86_64
nss-util-3.21.0-2.el6.x86_64
nspr-4.11.0-1.el6.x86_64

La version est complètement différente. Les deux curl et pycurl regardent le NSS de l'environnement d'exécution (machine hôte), j'en suis sûr. .. ..

Au fait,

Production


cat /etc/redhat-release
CentOS release 6.6 (Final)

Mise en scène


cat /etc/redhat-release
CentOS release 6.8 (Final)

La version de CentOS est également différente.

Peut-être que CentOS 6.6 est fourni avec NSS vulnérable depuis le début, 6.8 faisceaux NSS vulnérables, Je suppose qu'il y a une différence.

Exécutez ↓ pour le moment

yum update nss nss-util nspr

Après cela, lorsque le script non exécutable a été de nouveau exécuté, il est devenu exécutable sans aucune erreur. (Résolution d'événement) Je pense avoir passé environ 8 heures depuis le début de l'enquête jusqu'à présent. ..

Si vous ne pouvez pas exécuter curl, essayez-le. .. (Il n'y a pas de problème si la vulnérabilité est corrigée)

Recommended Posts

Que faire si vous obtenez "(35, 'Erreur de connexion SSL')" dans pycurl (l'un d'entre eux)
Que faire si vous obtenez une erreur "Aucune version trouvée" sur pipenv
Que faire si Combinaisons devient «couverture inconnue»
Que faire si vous obtenez une erreur lors de l'importation de matplotlib en Python (Mac)
Que faire si vous obtenez moins zéro en Python
Que faire lorsque swagger-codegen est terminé avec python et Erreur d'importation: aucun module nommé n'apparaît
Que faire si vous obtenez une erreur Impossible de récupérer le lien métallique pour le référentiel avec yum
Que faire si vous obtenez une erreur lors de l'exécution de "certbot renouveler" dans l'environnement CakePHP
Que faire si vous vous perdez dans la référence de fichier avec FileNotFoundError
Que faire si vous vous fâchez avec TensorFlow v2 sans l'attribut "app"
Que faire si vous obtenez une erreur lors du chargement de mnist
Que faire si vous obtenez une erreur indiquant que le compilateur C ne peut pas créer d'exécutables dans configure
Que faire si vous obtenez une erreur de remplacement obligatoire `get_config` lorsque vous essayez de model.save avec Keras
Que faire si vous obtenez une erreur lors de l'installation de python avec pyenv
Que faire si vous obtenez «Python non configuré». Utilisation de PyDev dans Eclipse
Que faire lorsque vous vous fâchez avec "Value Error: unknown local: UTF-8" dans python manage.py syncdb
Que faire si vous obtenez une erreur en essayant d'envoyer un message dans tasks.loop () immédiatement après le démarrage
Que faire si vous obtenez une erreur OpenSSL lors de l'installation de Python 2 avec pyenv
Que faire quand "Aucun noyau pour le langage python trouvé" apparaît dans Hydrogen
Que faire si vous obtenez une erreur de mémoire lors de la conversion de PySparkDataFrame en PandasDataFrame
Que faire si une erreur 0xC0000005 se produit dans tf.train.start_queue_runners ()
Que faire si vous obtenez une erreur d'importation lors de l'importation de matplotlib avec Jupyter
Que faire si vous ne pouvez pas vous connecter en tant que root
Que faire si vous obtenez l'erreur ʻERR_FEATURE_UNAVAILABLE_ON_PLATFORM` lors de l'utilisation de ts-node-dev sous Linux
Que faire si vous exécutez python sur IntelliJ et quittez avec une erreur
Que faire si vous recevez une erreur d'appel avec trop d'arguments d'entrée à faire et retourner dans un test de golang
Que faire si vous obtenez une erreur non définie lorsque vous essayez d'utiliser pip avec pyenv
Que faire si vous obtenez une erreur de décodage Unicode avec l'installation de pip
Que faire si vous ne pouvez pas utiliser la poubelle dans Lubuntu 18.04.
Que faire si vous avez corrigé l'erreur dans l'adresse IP du fichier de zone mais ne pouvez pas vous connecter au serveur DNS
Que faire si vous vous fâchez contre les `` déclarations '' doivent être une liste 2D ... dans la flèche matplotlib
Que faire si PDO n'est pas trouvé dans Laravel ou CakePHP
Que faire si vous ne pouvez pas utiliser la recherche de grille de sklearn en Python
Que faire si vous êtes bloqué pendant l'installation d'Anaconda sur Linux
Que faire lorsque TypeError se produit au minimum et au maximum de numpy
Que faire si vous ne pouvez pas installer avec pip dans l'environnement babun
Que faire si vous obtenez Impossible de récupérer l'URL 443 avec pip
[OSX] [pyenv] Que faire lorsqu'une erreur SSL se produit dans pip
Que faire si vous obtenez `locale.Error: unsupported locale setting` lors de l'obtention de la date du jour en Python
Que faire si pipreqs aboutit à UnicodeDecodeError
Que faire lorsque le shell pipenv devient impossible
Que faire pour obtenir une feuille de calcul Google en Python
Que faire si vous obtenez une erreur comme "Qstring" a déjà été défini sur la version 1 en utilisant mne python
Que faire si vous obtenez une erreur d'autorisation refusée (clé publique) lorsque vous essayez de tirer sur le hub Git
Que faire si vous obtenez l'erreur Le script WSGI cible '/ var / www / xxx / xxx.wsgi' ne peut pas être chargé en tant que module python
swapon failed: Que faire si vous vous fâchez contre l'opération non autorisée
[python] Que faire si vous obtenez une erreur avec send_keys dans le chrome sans tête
Que faire si une erreur de codage Unicode se produit dans Sublime Text Python
[Python] Choses à vérifier lorsqu'une erreur de décodage Unicode apparaît dans Django
Que faire si une erreur de version se produit dans le pilote Selenium Chrome
Que faire si une erreur de connexion SSL (ssl.SSLError: [SSL: DH_KEY_TOO_SMALL]) se produit sur Ubuntu 20.04
Que faire si l'installation de pip échoue dans Xcode 5.1
Que faire si vous ne pouvez pas installer mysqlclient
ModuleNotFoundError: No module Que faire si vous obtenez 'sensorflow.contrib'
Que faire si une erreur de décodage Unicode se produit dans pip
Que faire si vous obtenez l'erreur L'entrée contient NaN, l'infini ou une valeur trop grande pour dtype ('float64').
Que faire si vous obtenez l'erreur RuntimeError: Python n'est pas installé en tant que framework lorsque vous essayez d'utiliser matplitlib et pylab dans Python 3.3
Que faire si la commande d'impression elle-même provoque une erreur dans le python de Maya