Skip to content

OwnCA/ownca

Repository files navigation

Build Status Documentation Status codecov pypi pypi Downloads pypi

THIS PROJECT IS OPEN FOR MAINTAINERS

Development on the OwnCA projects has been stagnated for a while For that reason, I'm opening the organization to new maintainers who will have the proper permissions to unstuck development.

Those willing to join, contact me by email with the subject [OwnCA Maintainer] and please let me know what motivates you to join in such role.

Python Own Certificate Authority (OwnCA)

OwnCA makes it easy to handle a Certificate Authority (CA) and manage certificates for hosts, servers or clients.

An example of high-level usage:

>>> from ownca import CertificateAuthority
>>> ca = CertificateAuthority(ca_storage='/opt/CA', common_name='Corp CA')
>>> example_com = ca.issue_certificate('www.example.com', dns_names=['www.example.com', 'w3.example.com'])

Basically, in these three lines we:

  1. Imported the ownca Certificate Authority library

  2. Created a new CA named Corp CA that uses /opt/CA as CA storage for certificates, keys, etc.

  3. Created a signed certificate by Corp CA for www.example.com, whose files are also stored in /opt/CA/certs/www.example.com

     >>> example_com.cert
     <Certificate(subject=<Name(CN=www.example.com)>, ...)>

More detailed usage can be found in http://ownca.readthedocs.org.

Installation

pip install ownca

Documentation

Visit http://ownca.readthedocs.org

Development

Preparing the environment

git clone git@github.com:OwnCA/ownca.git
cd ownca
pipenv shell
pipenv install -d

In case you have macOS M1:

pip uninstall cryptography cffi
LDFLAGS=-L$(brew --prefix libffi)/lib CFLAGS=-I$(brew --prefix libffi)/include pip install cffi cryptography rust --no-binary :all:

Installing & enabling pre-commit

To automatically run checks before you commit your changes you should install the git hook scripts with pre-commit:

pre-commit install
pre-commit autoupdate