Coder Social home page Coder Social logo

alphagov / notifications-certificate-management Goto Github PK

View Code? Open in Web Editor NEW
1.0 15.0 4.0 67 KB

Manages certificates for users who can not access the public internet

License: MIT License

Python 88.83% Makefile 5.57% Dockerfile 2.77% Shell 2.84%
govuk-notify

notifications-certificate-management's Introduction

notifications-certificate-management

What this app does

An HTTP app that:

  • when given a certificate signing request, will sign it and return an issued certificate
  • provides certificate revocation lists (CRL) for our private certificate authorities

Why do we have this app

We need to let the Mobile Network Operators (MNOs) get issued certificates signed by us for both TLS and VPN connections. We want to automate this process as much as possible so we avoid manual work every couple of months when certificates need rotating. This is especially important as there are multiple mobile networks to do this for. By having an HTTP endpoint for this the MNOs can request and get new certificates themselves.

We need to let the mobile networks have access to our CRLs. The CRLs are publically accessible from S3. However the cell broadcast infrastructure for the mobile networks does not have access to the public internet so they can not get them from S3. Therefore, we run this app so they can get the CRLs from S3 via our network.

Set up and run locally

To run this app locally, you need to make sure it has permissions to talk to the AWS Certificate Manager service. For local development we suggest you use the cell broadcast staging AWS account for this as shown in this example.

pip install -r requirements_for_test.txt

export FLASK_APP=main.py
export NOTIFY_ENVIRONMENT=development
export EE_USERNAME=ee
export EE_PASSWORD=ee_password
export EE_COMMON_NAMES='["ee-allowed-common-name"]'
export O2_USERNAME=o2
export O2_PASSWORD=o2_password
export O2_COMMON_NAMES='["o2-allowed-common-name"]'
export VODAFONE_USERNAME=vodafone
export VODAFONE_PASSWORD=vodafone_password
export VODAFONE_COMMON_NAMES='["vodafone-allowed-common-name"]'
export THREE_USERNAME=three
export THREE_PASSWORD=three_password
export THREE_COMMON_NAMES='["three-allowed-common-name"]'

gds aws cell-broadcast-staging-admin -- flask run

Run tests

pip install -r requirements_for_test.txt
make test

notifications-certificate-management's People

Contributors

dependabot[bot] avatar idavidmcdonald avatar klssmith avatar leohemsted avatar rjbaker avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.