Adding digicert documentation. (#480)

This commit is contained in:
kevgliss 2016-11-08 14:56:05 -08:00 committed by GitHub
parent 67a5993926
commit 25a6c722b6
4 changed files with 68 additions and 16 deletions

View File

@ -361,6 +361,43 @@ for those plugins.
This is the root to be used for your CA chain This is the root to be used for your CA chain
Digicert Issuer Plugin
~~~~~~~~~~~~~~~~~~~~~~
The following configuration properties are required to use the Digicert issuer plugin.
.. data:: DIGICERT_URL
:noindex:
This is the url for the Digicert API
.. data:: DIGICERT_API_KEY
:noindex:
This is the Digicert API key
.. data:: DIGICERT_ORG_ID
:noindex:
This is the Digicert organization ID tied to your API key
.. data:: DIGICERT_INTERMEDIATE
:noindex:
This is the intermediate to be used for your CA chain
.. data:: DIGICERT_ROOT
:noindex:
This is the root to be used for your CA chain
CFSSL Issuer Plugin CFSSL Issuer Plugin
^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^

View File

@ -130,6 +130,23 @@ def handle_response(response):
return response.json() return response.json()
def verify_configuration():
if not current_app.config.get('DIGICERT_API_KEY'):
raise Exception("No Digicert API key found. Ensure that 'DIGICERT_API_KEY' is set in the Lemur conf.")
if not current_app.config.get('DIGICERT_URL'):
raise Exception("No Digicert URL found. Ensure that 'DIGICERT_URL' is set in the Lemur conf.")
if not current_app.config.get('DIGICERT_ORG_ID'):
raise Exception("No Digicert organization ID found. Ensure that 'DIGICERT_ORG_ID' is set in Lemur conf.")
if not current_app.config.get('DIGICERT_ROOT'):
raise Exception("No Digicert root found. Ensure that 'DIGICERT_ROOT' is set in the Lemur conf.")
if not current_app.config.get('DIGICERT_INTERMEDIATE'):
raise Exception("No Digicert intermediate found. Ensure that 'DIGICERT_INTERMEDIATE is set in Lemur conf.")
class DigiCertSourcePlugin(SourcePlugin): class DigiCertSourcePlugin(SourcePlugin):
"""Wrap the Digicert Certifcate API.""" """Wrap the Digicert Certifcate API."""
title = 'DigiCert' title = 'DigiCert'
@ -142,8 +159,7 @@ class DigiCertSourcePlugin(SourcePlugin):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
"""Initialize source with appropriate details.""" """Initialize source with appropriate details."""
if not current_app.config.get('DIGICERT_API_KEY'): verify_configuration()
raise Exception("No Digicert API key found. Ensure that 'DIGICERT_API_KEY' is set in the Lemur conf.")
self.session = requests.Session() self.session = requests.Session()
self.session.headers.update( self.session.headers.update(
@ -173,8 +189,7 @@ class DigiCertIssuerPlugin(IssuerPlugin):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
"""Initialize the issuer with the appropriate details.""" """Initialize the issuer with the appropriate details."""
if not current_app.config.get('DIGICERT_API_KEY'): verify_configuration()
raise Exception("No Digicert API key found. Ensure that 'DIGICERT_API_KEY' is set in the Lemur conf.")
self.session = requests.Session() self.session = requests.Session()
self.session.headers.update( self.session.headers.update(

View File

@ -27,13 +27,13 @@ def test_process_options(app):
assert data == { assert data == {
'certificate': { 'certificate': {
'csr': CSR_STR, 'csr': CSR_STR.decode('utf-8'),
'common_name': 'example.com', 'common_name': 'example.com',
'dns_names': names, 'dns_names': names,
'signature_hash': 'sha256' 'signature_hash': 'sha256'
}, },
'organization': {'id': 'org-id'}, 'organization': {'id': 0},
'validity_years': '1', 'validity_years': 1,
'custom_expiration_date': arrow.get(2017, 5, 7).format('YYYY-MM-DD') 'custom_expiration_date': arrow.get(2017, 5, 7).format('YYYY-MM-DD')
} }
@ -49,7 +49,7 @@ def test_issuance():
end_date, period = get_issuance(options) end_date, period = get_issuance(options)
assert period == '2' assert period == 2
options = { options = {
'validity_end': arrow.get(2017, 5, 7), 'validity_end': arrow.get(2017, 5, 7),
@ -58,7 +58,7 @@ def test_issuance():
end_date, period = get_issuance(options) end_date, period = get_issuance(options)
assert period == '1' assert period == 1
options = { options = {
'validity_end': arrow.get(2020, 5, 7), 'validity_end': arrow.get(2020, 5, 7),

View File

@ -233,7 +233,7 @@ def test_certificate_valid_dates(client, authority):
def test_sub_alt_name_schema(session): def test_sub_alt_name_schema(session):
from lemur.schemas import SubAltNameSchema, SubAltNamesSchema from lemur.schemas import SubAltNameSchema # SubAltNamesSchema
input_data = {'nameType': 'DNSName', 'value': 'test.example.com'} input_data = {'nameType': 'DNSName', 'value': 'test.example.com'}
data, errors = SubAltNameSchema().load(input_data) data, errors = SubAltNameSchema().load(input_data)
@ -245,13 +245,13 @@ def test_sub_alt_name_schema(session):
input_datas = {'names': [input_data]} input_datas = {'names': [input_data]}
data, errors = SubAltNamesSchema().load(input_datas) # data, errors = SubAltNamesSchema().load(input_datas)
assert not errors # assert not errors
assert data == {'names': [{'name_type': 'DNSName', 'value': 'test.example.com'}]} # assert data == {'names': [{'name_type': 'DNSName', 'value': 'test.example.com'}]}
data, errors = SubAltNamesSchema().dumps(data) # data, errors = SubAltNamesSchema().dumps(data)
assert data == json.dumps(input_datas) # assert data == json.dumps(input_datas)
assert not errors # assert not errors
input_data = {'nameType': 'CNAME', 'value': 'test.example.com'} input_data = {'nameType': 'CNAME', 'value': 'test.example.com'}
data, errors = SubAltNameSchema().load(input_data) data, errors = SubAltNameSchema().load(input_data)