Project to help use the breadcrumbs that are left by the certificate to build the chain and output it into files.
Project description
Get Certificate Chain 🌐🔐
This Python script retrieves the certificate chain from a website, allowing you to analyze and verify the SSL/TLS certificates of the website. This project is a custom fork of the getCertificateChain project, and the overwhelming majority of credit goes to TheScriptGuy.
Table of Contents
Requirements 📋
- Python 3.9+
- Poetry (optional) - Python Poetry
Installation
PyPi
To install the package from PyPi, simply run the appropriate command.
pip install get-certificate-chain
GitHub
To install from the GitHub repository, follow these steps:
- Clone the repository.
- Change the directory to the cloned repository.
- Install the package using pip.
git clone https://github.com/cdot65/get_certificate_chain.git
cd get_certificate_chain
pip install .
Usage 🚀
Import into script
To use the package in your script, simply import the package and create an instance of the SSLCertificateChainDownloader
object.
To pass arguments into the object, you can use the argparse
library:
- Import the argparse library.
- Import the SSLCertificateChainDownloader object from the package.
- Create a python dictionary with the "host" key and value of the domain.
- Create an instance of the SSLCertificateChainDownloader object.
- Run the downloader object with the parsed arguments.
from get_certificate_chain.download import SSLCertificateChainDownloader
downloader = SSLCertificateChainDownloader()
# Use the downloader object for your needs
You can pass the arguments directly into the object:
from get_certificate_chain.download import SSLCertificateChainDownloader
downloader = SSLCertificateChainDownloader()
downloader.run({'host': 'www.google.com'})
Or pass you can use the argparse
library to parse the arguments:
import argparse
from get_certificate_chain.download import SSLCertificateChainDownloader
# Add your arguments
args = parser.parse_args()
downloader = SSLCertificateChainDownloader()
downloader.run(args)
You may also specify an output directory when creating an instance of the class:
from get_certificate_chain.download import SSLCertificateChainDownloader
downloader = SSLCertificateChainDownloader(output_directory="/var/tmp")
downloader.run({"host": "www.google.com"})
Command Line CLI
To use the script from the command line, run the following command:
get-certificate-chain --host www.google.com
get-certificate-chain --rm-ca-files
Arguments
--host
: The host:port pair that the script should connect to. Defaults to www.google.com:443.--rm-ca-files
: Remove the certificate files in the current working directory (*.crt
,*.pem
).--get-ca-cert-pem
: Get cacert.pem from the chost.se website to help find Root CA.--log-level
: Set the log level. Defaults to INFO.--output-dir
: Set the output directory. Defaults to the current working directory.
Contributing
Contributions are welcome! To contribute, please follow these guidelines:
- Write tests for your code using
pytest
. Make sure your tests follow the standards set by the existing tests. - Set up a virtual environment using
Poetry
. You can install Poetry by following the instructions at https://python-poetry.org/docs/#installation.
To set up a new virtual environment for the project, run the appropriate command.
poetry install
To activate the virtual environment, run the appropriate command.
poetry shell
After making your changes and adding tests, ensure that all tests pass by running the appropriate command.
pytest
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file get_certificate_chain-0.1.8.tar.gz
.
File metadata
- Download URL: get_certificate_chain-0.1.8.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.0 CPython/3.11.2 Darwin/22.4.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9bef0b6f162ec15f300accfc910e8a2fb378957606510b89ee157306dce3cb40 |
|
MD5 | cae717122c4e99500b2577e4ef7fd426 |
|
BLAKE2b-256 | ca5af47f0c46645ac4933604217ddcd977e8ac8f6fb11e318c6e5363d07b5665 |
File details
Details for the file get_certificate_chain-0.1.8-py3-none-any.whl
.
File metadata
- Download URL: get_certificate_chain-0.1.8-py3-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.0 CPython/3.11.2 Darwin/22.4.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 416846fe89ebfe95ffbf96093162e152c7104238231423898af4e9fb6a4fbc89 |
|
MD5 | 758d57ad0268b1a70c409003dfbe5251 |
|
BLAKE2b-256 | ceacf1649b11e5fe5291b6739b0e9de1e7ac687e46a3032bd9770b0c7ebed6de |