Helper class for SSL certificate handling
fty-lib-certificate
helps to create and manage a SSL certificate and a Certificate Signing Request (CSR).
Capabilities:
- create a public-private key pair
- create a self-signed certificate
- create a Certificate Signing Request (CSR)
git clone https://github.com/42ity/fty-lib-certificate.git
cd fty-lib-certificate
mkdir build ** cd build
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=usr -DBUILD_TESTING=On ..
make
./fty-lib-certificate-static-test #run self test
Keys keyPair = Keys::generateRSA(2048);
std::string privateKeyPem = keyPair.getPem();
std::string publicKeyPem = keyPair.getPublicKey().getPem();
Keys keyPair = Keys::generateRSA(2048);
CertificateConfig config;
// define your configuration here
config.setVersion(<version>);
config.setValidFrom(<start_timestamp>);
config.setValidTo(<end_timestamp>);
config.setCountry(<country>);
config.setState(<state>);
config.setLocality(<locality>);
config.setOrganization(<organization>);
config.setOrganizationUnit(<organization_unit>);
config.setCommonName(<common_name>);
config.setEmail(<email>);
config.setIpList({<ip1>,<ip2>});
config.setDnsList({<dns1>,<dns2>});
CertificateX509 cert = CertificateX509::selfSignSha256(keyPair, config);
Keys keyPair = Keys::generateRSA(2048);
CertificateConfig config;
// define your configuration here
config.setVersion(<version>);
config.setCountry(<country>);
config.setState(<state>);
config.setLocality(<locality>);
config.setOrganization(<organization>);
config.setOrganizationUnit(<organization_unit>);
config.setCommonName(<common_name>);
config.setEmail(<email>);
config.setIpList({<ip1>,<ip2>});
config.setDnsList({<dns1>,<dns2>});
CsrX509 csr = CsrX509::generateCsr(keyPair, config);