
Security News
The Changelog Podcast: Practical Steps to Stay Safe on npm
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.
github.com/samuelb/ssl-pubkey-fingerprint-exporter
Advanced tools
This Prometheus exporter allows you to monitor the public key fingerprints of your SSL certificates.
make
The created binaries will end up in the folder dist/.
The exporter can be configured using environment variables:
| Variable | Description | Default |
|---|---|---|
LISTEN_ADDRESS | Address to listen on | :3000 |
DEFAULT_TIMEOUT | Default timeout in seconds | 10 |
docker pull basa/ssl-pubkey-fingerprint-exporter
docker run -p 3000:3000 basa/ssl-pubkey-fingerprint-exporter
You can test the exporter using curl to make HTTP requests to the probe endpoint:
# Test with a domain and port
curl "http://localhost:3000/probe?target=example.com:443"
# Test with a custom listen address
LISTEN_ADDRESS=:8080 ./ssl-pubkey-fingerprint-exporter
curl "http://localhost:8080/probe?target=example.com:443"
The response will be in Prometheus metrics format, showing the SSL certificate's public key fingerprint.
# HELP ssl_pubkey_fingerprint SSL certificate publickey SHA-256 fingerprint
# TYPE ssl_pubkey_fingerprint gauge
ssl_pubkey_fingerprint{fingerprint="base64encodedsha256sumofbinarypublickey=",target="example.com:443"} 1
scrape_configs:
- job_name: "ssl-pubkey-fingerprint-exporter"
metrics_path: /probe
static_configs:
- targets:
- example.com:443
- https://example.org
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: ssl-pubkey-fingerprint-exporter:3000
absent(ssl_pubkey_fingerprint{fingerprint="base64encodedsha256sumofbinarypublickey",target="example.com:443"})
Extract public key sha256 fingerprint from PEM-encoded certificate file
openssl x509 -pubkey -noout -in certificate.pem | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
Extract public key sha256 fingerprint from keyfile
openssl rsa -in certificate.key -pubout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
Extract public key sha256 fingerprint from HTTP server
servername=example.com; echo Q | openssl s_client -connect $servername:443 -servername $servername | openssl x509 -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
FAQs
Unknown package
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.

Security News
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.

Security News
Ruby's creator Matz assumes control of RubyGems and Bundler repositories while former maintainers agree to step back and transfer all rights to end the dispute.