Skip to content

bertrandmartel/ssl-cert-dashboard

Repository files navigation

SSL certificates certificates

Web dashboard of SSL certificates with QT4 non blocking http server / mongoDB back-end

Features

  • SSL Dashboard

    • creation of CA self signed certificate
    • creation of signed certificate (from a CA cert)
    • download public/private key + PKCS12 cert containing CA + key pair
    • listing of all created certificates (with grouping according to Certificate Authority)
  • Authentication/Session

    • digest authentication
    • session persistence with cookie
  • Back-end

    • non blocking http server built with QT4 framework
    • mongoDB client managing all database interactions
  • Database encryption *XOR encryption for user password


Server can be launched with a configuration file letting you change ssl settings / XOR encryption key / digest algorithm used in authentication


##Prerequesites

  • libboost-all-dev package installed
  • mongod package installed

##Build

cd ssl-dashboard

make 

##Launch

Edit to your liking file config.json, here is default configuration :

{
    "port"           : 4343,
    "ip"             : "127.0.0.1",
    "useSSL"         : true,
    "publicCert"     : "~/ssl-dashboard/certs/server/server.crt",
    "privateCert"    : "~/ssl-dashboard/certs/server/server.key",
    "caCerts"        : "~/ssl-dashboard/certs/ca.crt",
    "privateKeyPass" : "12345",
    "digestRealm"    : "bertrandmartel_realm",
    "webPath"        : "/ssl-dashboard/web",
    "keyFile"        : "~/ssl-dashboard/rand.txt",
    "digestAlgo"     : "MD5"
}

Then to launch server check https://127.0.0.1:4343/login :

cd ssl-dashboard/release
./ssl-dashboard ../config.json

Then in a browser :

login

##Memory checking

Using valgrind :

valgrind --tool=memcheck --leak-check=full --suppressions=../memcheck.suppress ./ssl-dashboard ../config.json

##External libraries

Specifications

  • OpenSSL is built with -DPURIFY option to avoid valgrind to complain about uninitialized data ("Conditional jump or move depends on uninitialised value(s)" warnings).

https://www.openssl.org/docs/faq.html#PROG14


##Other views

  • SSL cert dashboard

ssl cert dashboard

  • SSL cert creation

ssl cert creation

  • User dashboard

user dashboard

##License

License MIT


  • Project is Qt4 compliant
  • Development on QtCreator