Giter Site home page Giter Site logo

admin's Introduction

pki.io

Hello there. I'm sad to say that I have decided to completely stop working on the pki.io project. I haven't actively worked on it for about a year and don't see this changing any time soon....

The project was started because as a sysadmin I had the need to easily manage and deploy TLS certificates in a secure way. I think the usability and security models of pki.io are still unique and powerful, but this project was started before Let's Encrypt and Netflix's Lemur were announced, so there are probably better alternatives out there now.

On a positive note, writing an open source security tool meant needing to threat model it in a modern, code-driven way. Thus pki.io gave birth to ThreatSpec.org which aims to make continuous threat modelling through code a reality. I'll definitely continue to work on ThreatSpec because it addresses a more general problem and I think that code-driven continuous threat modelling is a natural evolution of security shifting left.

I'd absolutely love it if you could fill out a survey on threat modelling as it would help me define the future of ThreatSpec: https://www.surveymonkey.com/r/N7SR5J6

If you'd like to help out with ThreatSpec, have thoughts or suggestions, check out the site at http://threatspec.org or talk to us on Twitter @ThreatSpec.

So, what's the future for pki.io? Well, I'll leave the source code on GitHub [1]. If you'd like to adopt the project in some way, drop me an email to [email protected]. Also, feel free to email me if you have any questions about pki.io.

Thanks to everyone for your thoughts, feedback, code contributions and support.

Farewell and all the best, Fraser

Open source and scalable X.509 certificate management.

Website: http://pki.io

Wiki: https://github.com/pki-io/pki-io/wiki

Repositories

  • pki-io - This repo containing documentation and wikis
  • admin - Admin command line utility
  • build - Self contained build system using Vagrant
  • web - The pki.io website
  • core - Packages shared between admin, agent and api
  • api - The API service

All other repos are 'vendored' dependencies that have been forked.

Contributing

  • Fork
  • Create branch
  • Make changes
  • Push branch
  • Create Pull Request
  • Optionally create a new topic on mailing list to discuss PR

See also the Developer and Community Guidelines.

admin's People

Contributors

jawher avatar jonbonazza avatar kalloc avatar thanasisk avatar waffle-iron avatar zeroxten avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar

admin's Issues

Version upgrade checking

auto updating would be nice, but as an alternative we should do some sort of version check and warn if a newer version is available.

Keybase does a nice job.

warn: Upgrade suggested! Run keybase-installer to upgrade to v0.7.5

Something to think about.

Problems with subcommand args

I added the following line to the usage under "Examples":

pki.io init --org=<org> --admin=<admin>

Then, when running I just got the generic usage:

$ go run *.go init --org hello --admin fscott
Usage:
    pki.io [--version] <command> [<args>...]
exit status 1

Running this worked:

$ go run *.go init 
map[<command>:init <args>:[] --version:false]
command arguments:
[]
init
Hi
Not Implemented ...yet
exit status 1

In order to get this working I had to reformat the usage a bit:

usage := `pki.io
Usage:
  pki.io init --org=<org> --admin=<admin>
  pki.io --version

Options:
  -h --help   Show this screen
  --version   Show version
  --org=<name> Organisation name
  --admin=<name> Administrator name
`

But that meant not using a subcommand function:

    arguments, _ := docopt.Parse(usage, nil, true, "pki.io", false)
    fmt.Println(arguments)

    if arguments["init"].(bool) {
        runInit(arguments)
    }

Here is the output...

$ go run *.go init --org test --admin babc
map[init:true --org:test --admin:babc --version:false]
&{.}
Creating Org entity
Creating Admin entity
Generating Org keys

make command should run tests

Standard Makefile usage for working with source generally looks like

$ make && make install

Therefore we need to ensure that the make command (no arguments) does:

  • Get any dependencies
  • Runs any tests
  • Builds binaries

This also works nicely with TravisCI.

Logging

Need to look at nice logging packages (or built in?) and choose one for CLI. Presume packages will continue to just return an error with fmt.Errorf() but at the moment we've just been doing panic() in the CLI.

Export certificates

Write tar.gz of selected data to default file, provided file or standard out.

Split out actions

Into helper functions for now, but possibly a shared CLI package in future.

Use EC instead of RSA

Jon has updated main packages to support EC, need to update admin client to actually use them.

Create cli package

Something that can be used across different cli tools (admin, agent, other?) and provides high level load and save for the API.

Check file permissions

Currently setting them correctly, but not enforcing on read or write. Need to do this in a clean and central way, perhaps a sort of File struct that stores the path and perms and enforce perms on each interaction.

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.