Easy CA management
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.4 KiB

  1. CA manager
  2. ==========
  3. This collection of tools is our take on managing a CA, signing SSH keys and certificates, signin SSL certificates.
  4. ### Tools
  5. #### `request_server.py`
  6. This is a shell for a user, the shell only reads the input from the user and return a JSON, this user can be used with Ansible to request and retrive certificates.
  7. The input must be a JSON file, e.g
  8. ```JSON
  9. {
  10. {
  11. "keyType": "ssh_host",
  12. "hostName": "my_new_server",
  13. "keyData": "ssh-ed25519 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa root@my_new_server"
  14. },
  15. "type": "sign_request"
  16. }
  17. ```
  18. the example is a `sign_request` for a ssh host certificate.
  19. The shell just output a json with `status` and `reason` keys.
  20. ```JSON
  21. {
  22. "reason" : ...,
  23. "status" : ...
  24. }
  25. ```
  26. The server logs can be found at `/home/request/request_server.log`
  27. #### `ca_sheel.py`
  28. This is a shell for a user, the shell limits the commands to the one we are interested, like generating a SSH/SSL CA, signing keys.
  29. ```
  30. # LILiK CA Manager
  31. Welcome to the certification authority shell.
  32. Type help or ? to list commands.
  33. (CA Manager)> ?
  34. Documented commands (type help <topic>):
  35. ========================================
  36. describe_cas gen_ca help ls_ca ls_requests quit sign_request
  37. ```
  38. ### Configuration
  39. The only configuration needed is the path where to operate, modifying te file `paths.py` is all is needed.