Come verificare la validità di un certificato HTTPS in Python – Check HTTPS in Python
Con un semplice script python è possibile verificare la validità del certificato SSL per uno specifico host. La lista del materiale occorrente comprende una versione di Python aggiornata, in questa guida si farà riferimento alla 3.8 e i seguenti moduli, installabili via pip:
- pyopenssl
- idna
- cryptography
Per prima cosa bisogna creare un socket che si connetta all’host da esaminare:
socket = socket()
socket.connect(('esempio.com', 443))
si crea ora il context SSL passando come parametro la versione SSL, utilizzeremo la versione SSLv3 che è una delle più comuni, se ciò non dovesse funzionare a questo link troverete una lista dei parametri da poter dare in ingresso.
cntx = SSL.Context(SSL.SSLv23_METHOD)
diamo istruzioni per stabilire una secure socket connection
sock_ssl = SSL.Connection(ctx, sock)
sock_ssl.set_connect_state()
sock_ssl.set_tlsext_host_name(idna.encode('esempio.com'))
sock_ssl.do_handshake()
idna.encode('esempio.com')
codifica in Punycode l’argomento che gli si passa, in questo caso esempio.com.
esegue l’SSL handshake.
do_handshake()
Si deve ora recuperare il certificato crtf = sock_ssl.get_peer_certificate()
e accedere alle informazione di questo, decrittografandolo e rendendolo human readible: dcrpt_crtf =crtf.to_cryptography()
Si possono estrapolare tutte le informazioni dal certificato:
- Subject Alternate Name (SAN) :
dcrpt.extensions.get_extension_for_class(x509.SubjectAlternativeName)
- Common Name (CN) :
dcrpt.subject.get_attributes_for_oid(NameOID.COMMON_NAME)
- Issuer :
dcrpt.issuer.get_attributes_for_oid(NameOID.COMMON_NAME)
Gli issuer sono le autorità dalle quali si possono ottenere certificati x509, Let’s Encrypt ad esempio è un issuer.
Un altro metodo per verificare un certificato SSL è quello di usare urllib3, per installarlo:
pip install urllib3
e poi:
import urllib3
http = urllib3.PoolManager()
http.request('GET', 'https://dominio_da_verificare')
se il certificato è valido si otterrà un output del genere <urllib3.response.HTTPResponse object at 0x7fd3ca5da580>, simile all’output di sock_ssl.get_peer_certificate().
Se non è valido otterremo un’eccezione del tipo urllib3.exceptions.SSLError.
Geolocalizzare un IP in Python
La localizzazione geografica di un indirizzo IP in python è alquanto semplice, è necessaria l’installazione del solo modulo requests.
Utilizzeremo l’API
https://geolocation-db.com/json/
e quindi:
response = requests.get("https://geolocation-db.com/json/indirizzoIP&position=true").json()
Ovviamente al posto di indirizzoIP, va inserito un indirizzo. Si otterrà un json con le informazioni richieste
{‘country_code’: ‘IT’, ‘country_name’: ‘Italy’, ‘city’: ‘Roma’, ‘postal’: ‘ 00118‘, ‘latitude’: 41.9028, ‘longitude’: 12.4964, ‘IPv4’: ‘indirizzoIP’, ‘state’: ‘Provincia di Roma’}
Pingare un sito in python
il modo più veloce per effettuare un ping usando il linguaggio python è installare pythonping.
Fatto ciò, non rimane che importarlo e lanciarlo, pingando un sito:
from pythonping import ping
ping('sito.com')
questo restituirà una liste con le risposte, contenti il pacchetto ricevuto e altre meta informazioni.
Un altro modo è quello di usare i comandi del sistema operativo da uno script python:
import os
os.system(f"ping -c 1 -w2 'sito_da_pingare.com' > /dev/null 2>&1 ")
se usate Linux
os.system(f"ping -n 1 -w2 'sito_da_pingare.com' > /dev/null 2>&1 ")
se usate Windows
👇 Da non perdere 👇
- 📈 Analizza Cellulari 📱
- 🔐 AI che dolor, Chat
- 🎯 Targetizza Database SQL 🗄
- 📊 Analizza Errori più comuni 📛
- 🚧 Costruisci Evergreen 📟
- 👩💻 Programma Gratis 🎉
- 💻 Configura Hosting a confronto 💑
- 🔒 Conosci Hosting reti e domini 💻
- 👩💻 Tapioca Informatica 🖥
- 💻 Iconizza Internet 💻
- 🔒 Gestisci Lavoro 🔧
- 💡 Mostra Marketing & SEO 🌪
- 🔑 Apprendi Meteo ⛅
- 🤯 Visiona Mondo Apple 🍎
- 🔍 Supervisiona Mondo Domini 🌐
- 🚀 Metti in cloud monitoraggio servizi online 📈
- 🔮 Anatomizza Nuove tecnologie 🖥
- 🔒 Antani PEC e firma digitale 📩
- 👀 Prematura Programmare 🖥
- 🎮 Lonfa Scrivere 🖋
- 🔒 Conosci Servizi di SMS 📶
- 👀 Guarda Sicurezza informatica e privacy digitale 🖥
- 🎮 Ricorda Siti web 🌎
- 🤖 Ottimizza Spiegoni 🎓
- 🧠 Neuralizza Svago 🎈
- 📡 Quantizza Usare Excel 🌀
- 🤖 Sovrascrivi Windows 😲
- 🎨 Personalizza Wireless 🚁
- 🔑 Decifra WordPress 🤵
- 💬 Il nostro canale Telegram: iscriviti
- 🔴 Registrazione domini .ABBVIE: che cosa ne sappiamo?
- 🔴 Durata sessione media di Analytics: qual è il valore perfetto?
- 🟢 Registrazione domini .ABBVIE: che cosa ne sappiamo?