Skip to main content

NetBox plugin for TLS/SSL certificate management - Project Janus

Project description

NetBox SSL Plugin

Project Janus โ€” Your Single Source of Truth for TLS/SSL certificate management in NetBox

PyPI Python CI License NetBox

Named after Janus, the Roman god of doorways and transitions โ€” because every certificate guards a doorway, and every renewal is a transition.


NetBox SSL Certificate List

โœจ Why NetBox SSL?

Managing SSL certificates across your infrastructure shouldn't be a scavenger hunt. NetBox SSL brings visibility and control to your certificate lifecycle:

  • ๐Ÿ” See everything at a glance โ€” Know which certificates are expiring, where they're deployed, and who owns them
  • ๐Ÿ”„ Painless renewals โ€” The Janus workflow transfers all assignments automatically when you renew
  • ๐Ÿ”’ Security first โ€” Private keys are never stored, only location hints for your secret management system
  • ๐ŸŽฏ Deep integration โ€” Certificates link directly to NetBox Services, Devices, and VMs

๐Ÿš€ Quick Start

pip install netbox-ssl

Add to your configuration.py:

PLUGINS = ["netbox_ssl"]

Run migrations and restart NetBox:

python manage.py migrate netbox_ssl
sudo systemctl restart netbox netbox-rq

That's it! Navigate to Plugins > SSL Certificates in your NetBox.

๐Ÿ“– Full documentation: docs/

โš™๏ธ Configuration

Customize the plugin via PLUGINS_CONFIG in your configuration.py:

PLUGINS_CONFIG = {
    "netbox_ssl": {
        "expiry_warning_days": 30,   # Days before expiry โ†’ Warning status
        "expiry_critical_days": 14,  # Days before expiry โ†’ Critical status
    },
}
Option Type Default Description
expiry_warning_days Integer 30 Certificates expiring within this many days show warning status
expiry_critical_days Integer 14 Certificates expiring within this many days show critical status

See Configuration for more options including custom fields, permissions, and webhooks.

๐Ÿ“ธ Screenshots

Certificate Detail
Certificate details with validity and assignments
Smart Import
Smart Paste import with automatic X.509 parsing
Dashboard Widget
Dashboard widget showing certificate health
Assignments
Track which certificates are assigned where

๐ŸŽฏ Key Features

Smart Paste Import

Just paste your PEM certificate โ€” the plugin extracts everything automatically: Common Name, SANs, validity dates, issuer chain, fingerprints, and more.

Janus Renewal Workflow

When you import a renewed certificate (same CN as an existing one), the plugin offers to:

  • Transfer all assignments from the old certificate
  • Archive the old certificate with "Replaced" status
  • Link them together for audit trail

Certificate Assignments

Link certificates to the objects that use them:

  • Services (recommended) โ€” Port-level granularity (e.g., HTTPS on port 443)
  • Devices โ€” Physical servers and appliances
  • Virtual Machines โ€” VMs in your virtualization clusters

Expiry Dashboard Widget

Add the widget to your NetBox dashboard to see:

  • ๐Ÿ”ด Critical โ€” Expiring within 14 days
  • ๐ŸŸ  Warning โ€” Expiring within 30 days
  • โšซ Orphan โ€” Certificates without assignments

Security by Design

  • No private key storage โ€” Private keys never touch the database
  • Private key rejection โ€” PEM input with private keys is blocked
  • Key location hints โ€” Document where keys are stored (e.g., vault:secret/certs/example.com)

๐Ÿ“Š Compatibility

NetBox Version Plugin Version Status
4.5.x 0.1.x โœ… Primary
4.4.x 0.1.x โœ… Supported
4.3.x and older โ€” โŒ Unsupported

๐Ÿ“š Documentation

Full documentation is available in the docs/ folder:

๐Ÿ› ๏ธ Development

# Clone and start development environment
git clone https://github.com/ctrl-alt-automate/netbox-ssl.git
cd netbox-ssl
docker compose up -d

# Access NetBox at http://localhost:8000
# Login: admin / admin

See CONTRIBUTING.md for more details.

๐Ÿค Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch from dev
  3. Make your changes with tests
  4. Submit a pull request

๐Ÿ“„ License

Apache License 2.0

๐Ÿ™ Acknowledgments

  • The NetBox community for the excellent plugin framework
  • The cryptography library for robust X.509 parsing

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

netbox_ssl-0.1.0.tar.gz (44.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

netbox_ssl-0.1.0-py3-none-any.whl (40.7 kB view details)

Uploaded Python 3

File details

Details for the file netbox_ssl-0.1.0.tar.gz.

File metadata

  • Download URL: netbox_ssl-0.1.0.tar.gz
  • Upload date:
  • Size: 44.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for netbox_ssl-0.1.0.tar.gz
Algorithm Hash digest
SHA256 07851d86fd43b614738e59888ddcde3bfa378cb887f2cdbb86665748e07553a6
MD5 a5006b5557752cc046ba3984af9b441b
BLAKE2b-256 9fda605461bf96e7fa6b2dfbff97863a915af4c2e36256f166962f643d7e42c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for netbox_ssl-0.1.0.tar.gz:

Publisher: publish.yml on ctrl-alt-automate/netbox-ssl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file netbox_ssl-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: netbox_ssl-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 40.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for netbox_ssl-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ab460aa2f9a34452780c6c0d46dd1682120a71411f2fa151b4d929400c6d019
MD5 b6c817b99f80ba95b225542c0b1a1903
BLAKE2b-256 4da311a170d89671940409b300902bbd4c55db8e522814b5fcc5933a56dfa68e

See more details on using hashes here.

Provenance

The following attestation bundles were made for netbox_ssl-0.1.0-py3-none-any.whl:

Publisher: publish.yml on ctrl-alt-automate/netbox-ssl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page