Pycrtsh
Python 3 library to request https://crt.sh/
Install
To install pycrtsh, you will first need to install lxml and psycopg2 depencies, on debian-like distributions this command should do it sudo apt-get install libxml2-dev libxslt-dev libpq-dev python-dev (otherwise, please refer to the doc).
Then you can install it directly from PyPi : pip install pycrtsh
Or from sources :
git clone git@github.com:Te-k/pycrtsh.git
cd pycrtsh
pip install .
CLI
$ certsh domain github.com
157394275 2017-06-19T00:00:00 2017-06-19T00:00:00 C=US, O=DigiCert Inc, CN=DigiCert ECC Secure Server CA
157394064 2017-06-19T00:00:00 2017-06-19T00:00:00 C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert SHA2 High Assurance Server CA
146290136 2017-05-30T00:00:00 2017-05-25T00:00:00 C=BE, O=GlobalSign nv-sa, CN=GlobalSign Organization Validation CA - SHA256 - G2
110799854 2017-03-31T00:00:00 2017-03-23T00:00:00 C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert SHA2 High Assurance Server CA
110109609 2017-03-29T00:00:00 2017-03-20T00:00:00 C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert SHA2 High Assurance Server CA
108108576 2017-03-23T00:00:00 2017-03-23T00:00:00 C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert SHA2 High Assurance Server CA
107288158 2017-03-21T00:00:00 2017-03-20T00:00:00 C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert SHA2 High Assurance Server CA
[SNIP]
$ certsh cert 1357978
{
"cert": {
"extensions": {
"alternative_names": [
"*.github.com",
"github.com"
],
"authority_information_access": {
"CA Issuers": "URI:http://cacerts.digicert.com/DigiCertHighAssuranceCA-3.crt",
"OCSP": "URI:http://ocsp.digicert.com"
},
"authority_key_identifier": "50EA7389DB29FB108F9EE50120D4DE79994883F7",
"basic_constraints": false,
"crl_distribution": {
"url": "http://crl3.digicert.com/ca3-g18.crl"
},
"extended_key_usage": {
"usage": [
"TLS Web Server Authentication",
"TLS Web Client Authentication"
]
},
"key_usage": {
"critical": true,
"usage": [
"Digital Signature",
"Key Encipherment"
]
},
"subject_key_identifier": "BD0E3B9747B4967C3769706F79EB34B215293F5F"
},
"id": "1357978",
"issuer": {
"commonName": "DigiCert High Assurance CA-3",
"countryName": "US",
"id": "29",
"organizationName": "DigiCert Inc",
"organizationalUnitName": "www.digicert.com"
},
"not_after": "2014-02-05T12:00:00+00:00",
"not_before": "2013-01-28T00:00:00+00:00",
"publickey": {
"algorithm": "rsaEncryption",
"exponent": "65537",
"modulus": "00d1f7c403dd3f82cd4e80c6f53c3ac79d694d10fd2dd166487a7f01e049f310336915b00fae14d75f40a62d671be136498509efaff270d27511dcee830b87207ecdf3fc3bb56efc5c3633aa7b7588cc67f3b6c28cf551700958d2ed52a46a4636c78d92aef0b85388a9ecf517b04b09fcb57c0c5d5eec59c86ed6983302b6832c258dff8ef2eb4f43f01bc7dde659a043cd95182d3a0906f1bf9dbbe93adc82b2f01204157352d0f4d44ddae38f7393f5a2d75f235ba0d4152a8e45150345ba0ba58914ff93461352c773662c1a99c12eaf540c6a77fbe989d949397ec3f39705717372190b0eac9e502f3df7e1f03fe08d06857e1e920847c053887e0a6417a7",
"sha256": "664972c80a1624ee99d0b6bdcf4e8624abda3ecc49dcaf283a3b958daf28eac7",
"size": 2048
},
"serial": "0eada97535df71387222e9cc45b026da",
"sha1": "0792C0A4E7123A199BAD31BB0A93A2328146C24A",
"sha256": "8216887A031C3A28FF7A9ECF18815CEA5016A0FF09F72D4EBECFDF3AA4CCD3B1",
"signature": "a6afbb63af12d1d0777c7708593395798b8972b8f522f3fd8e86cd877fd6f5221ae1f0a33b0d08c0d3113f62b013a0603079d299b3d8bb1ad76af03fb005f1562123a0146e6b9817c1ce297b603aa7d6edfbabf32665c52e5a43bd8d3c534cbf13ad4a461389e0ffbbcc32cb586bb412fe0cf8a29a49663472123e9d2225576779f8b888a9c0abc55e44d86cf1be6cc5e5a91abc3d0be11bc1cfdcb8cb49b9484c955c7e6927ae9afa92d3f9c312442f75e61a10ce0e860f3a06344386d2869ae6e8424b724201c1493fc15fbdd1b59e6789fb1bcd7a502701e5f6837a473342c9ca021245d74ed5551d46ca7d9da55c3c233e7d6dd30486e02e847423ac9017",
"signature_algorithm": "sha1WithRSAEncryption",
"subject": {
"commonName": "*.github.com",
"countryName": "US",
"localityName": "San Francisco",
"organizationName": "Github, Inc.",
"stateOrProvinceName": "California"
},
"version": "3"
},
"found": true
}
Usage:
usage: certsh [-h] {cert,domain,subdomains} ...
Request crt.sh
positional arguments:
{cert,domain,subdomains}
Commands
cert Query a certificate (id, sha1, sha256 or
serial)
domain List certs related to a domain
subdomains List sub-domains from a domain based on
existing certificates
API
from pycrtsh import Crtsh
c = Crtsh()
certs = c.search("github.com")
details = c.get(certs[0]["id"], type="id")
See the detailed API on Read the docs
Tests
You can run tests with pytest
Licence
This code is published under MIT license
Metadata
Release files for pycrtsh 0.3.17
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pycrtsh-0.3.17.tar.gz | 12.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pycrtsh-0.3.17-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.7 kB
Release files / pycrtsh-0.3.17.tar.gz
| Download URL | pycrtsh-0.3.17.tar.gz |
|---|---|
| Size | 12.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
afdb22d8b4aa854aa886129a64de73f0e0ec0f7257f31dc4f04ce62d364e44b0
|
|
BLAKE2b-256 checksum How to use checksums |
d3ea1adc6a705aa93fe4886d5a6516ae2b630a85a183f6a20d0ea4f371cf44ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.0
|
Release files / pycrtsh-0.3.17-py3-none-any.whl
| Download URL | pycrtsh-0.3.17-py3-none-any.whl |
|---|---|
| Size | 10.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d0670233bc678ec09dac6fdadd45c5b15b709e42f4109ee904a95e2b776a7a6d
|
|
BLAKE2b-256 checksum How to use checksums |
46cbfc0cccf29ff896c1c09b9c9283f0031ebe7076fac7a8f4af7e97120f9ea8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.0
|
Security for pycrtsh 0.3.17
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.