Giter Club home page Giter Club logo

webcert's Introduction

WebCert

test License: MIT

A Web Tool for Generation and Management of digital Certificates

Digital Certificates are needed everywhere in today's world. They are used to enable secure SSL web traffic, e-mail encryption and other technologies.

To get a digital certificate, you'll either have to get one from a commercial provider (who usually charges $$$), or you have to install, configure and run your own certificate authority (also $$ and, at the very least something more to learn and manage, which is very time and resource consuming). Often we don't need the extensive functionality and complexity of a full CA management system.

As a result, I wrote WebCert to be able to quickly generate certificates on my own, and to enable my colleagues without knowledge of the details to do so as well. The first version became an instant hit with over 300 certificate generations per year. It encouraged me to improve it to the version you see here.

WebCert live URL

WebCert runs at https://webcert.fm4dd.com/

WebCert Design

WebCert is using the OpenSSL libraries for certificate operations. It is not just a frontend to the openssl program, but independently written. It only requires standard C libraries, the OpenSSL libraries and the CGIC library from Thomas Boutell. As a result, you don't need to maintain any of the web-application enabling technologies like JSP, PHP, Phyton... It is using simple CGI technology for the easiest installation and maintenance.

External Dependencies:

Make sure you have: -I<path-to-cgic-includes> and -L<path-to-cgic-lib>, and -I<path-to-openssl-includes> and -L<path-to-openssl-lib> in the Makefiles

Configuration:

Apart from the Makefiles in the root and src/ directories, check the file webcert.h in the src/ directory. The upper section can be configured to set the URL location and the default webcert parameters.

Making and installing WebCert:

  • vi Makefile and src/Makefile to adjust various path's for cgi and html destinations and ssl include and library directories

  • vi src/webcert.h to adjust the path's for your webserver and cert store (if you have one - for listing of local certificate copies)

  • vi src/certsign.h if you want to adjust certificate properties such as lifetime, extensions, comments, etc

  • make && make install "make install" expects a directory structure somewhere below your document root i.e. apache/htdocs/webcert containing the following sub directories: images cgi-bin style. The application is expected to be accessed via URL http://<www.yourdomain.com>/webcert.

  • don't forget to enable the cgi directory in your webserver, i.e. in apache's httpd.conf add the line: ScriptAlias /webcert/cgi-bin/ "/var/apache/htdocs/webcert/cgi-bin/"

A more complete installation procedure is provided in INSTALL.

Security:

It is highly advisable to provide access control and SSL encryption to the WebCert interface for any use other than experimental. The webserver writeable certificate and export directory should be secured (i.e. by a Apache directive).

Copyright and License:

WebCert was written by Frank4DD. It is distributed under the MIT license.

Legal Disclaimer:

Of course this software and its created certificates come WITHOUT ANY WARRANTY.

Thanks and Credits:

  • to Thomas Boutell for providing the CGIC library:
  • to the authors of O'Reilly's book "Network Security with OpenSSL" who provided a guiding "light" in the OpenSSL jungle.
  • to the authors of OpenSSL, whose code ensures that only the true & dedicated will learn its power ;-)

CGIC, copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 by Thomas Boutell and Boutell.Com, Inc.. Permission is granted to use CGIC in any application, commercial or noncommercial, at no cost. HOWEVER, this copyright paragraph must appear on a "credits" page accessible in the public online and offline documentation of the program. Modified versions of the CGIC library should not be distributed without the attachment of a clear statement regarding the author of the modifications, and this notice may in no case be removed. Modifications may also be submitted to the author for inclusion in the main CGIC distribution.

webcert's People

Contributors

fm4dd avatar lemondmn2 avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar

webcert's Issues

PKCS12 content display error during file generation

WebCert v1.8.5 (01/13/2024) Error in https://webcert.fm4dd.com/cgi-bin/p12convert.cgi

file: p12convert.c line: 624 error: Error extracting cert, key or CA data from PKCS12 struct

Additional Information
40372F43B97F0000:error:07800072:common libcrypto routines:sk_reserve:too many records:../crypto/stack/stack.c:180:
40372F43B97F0000:error:058C0100:x509 certificate routines:X509_add_cert:malloc failure:../crypto/x509/x509_cmp.c:219:

Source was the DSA certificate #1797 in the certificate list.

The p12 file itself gets created and works fine.
It is only the p12 data extraction and display functions that fails during generation.
If the p12 file is opened with the "analyze" function, file extraction and display also works fine.

Compilation error

Latest main branch
RHEL8, gcc (GCC) 10.3.1 20210422 (Red Hat 10.3.1-1.2.0.1) - from: gcc-toolset-10-gcc-10.3.1-1.2.0.1.el8_5.x86_64

gcc serial.o revocation.o webcert.o buildrequest.o pagehead.o pagefoot.o handle_error.o -o buildrequest.cgi -lcgic -lm -lssl -lcrypto
/opt/rh/gcc-toolset-10/root/usr/bin/ld: revocation.o:(.bss+0x0): multiple definition of error_str'; serial.o:(.bss+0x0): first defined here /opt/rh/gcc-toolset-10/root/usr/bin/ld: webcert.o:(.bss+0x0): multiple definition of error_str'; serial.o:(.bss+0x0): first defined here
/opt/rh/gcc-toolset-10/root/usr/bin/ld: buildrequest.o:(.bss+0x0): multiple definition of error_str'; serial.o:(.bss+0x0): first defined here /opt/rh/gcc-toolset-10/root/usr/bin/ld: pagehead.o:(.bss+0x0): multiple definition of error_str'; serial.o:(.bss+0x0): first defined here
/opt/rh/gcc-toolset-10/root/usr/bin/ld: pagefoot.o:(.bss+0x0): multiple definition of error_str'; serial.o:(.bss+0x0): first defined here /opt/rh/gcc-toolset-10/root/usr/bin/ld: handle_error.o:(.bss+0x0): multiple definition of error_str'; serial.o:(.bss+0x0): first defined here

Revoked certificate does not create a new CRL

A fresh revoked certificate does not create a new CRL at the time of revocation. The 3-month periodic CRL update (crontab entry) will add all revoked certs to the updated crl.

As a workaround, manual execution of the crontab command successfully adds all "waiting" revoked certs.

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.